2010-11-17 4 views
0

Lorsque j'utilise le plugin eclipse hibernate pour générer une classe java à partir de ma table, le nom du champ privé est le même avec mon nom de table. Y a-t-il un moyen pour moi de faire en sorte qu'il en soit de même avec mon nom de colonne?hibernate génère une classe pojo avec un nom de champ = nom de la colonne de base de données

Par exemple:

table: User 
column : name (string) 
column : homeAddressId (fk to addressTable) 

La classe générée est en ce moment:

User{ 
private String name; 
private Address address; 
} 

Je veux que ce soit:

User{ 
private String name; 
private Address homeAddress; 
} 

Y at-il un des paramètres de le faire?

Merci beaucoup pour votre aide.

Répondre

0

il peut y avoir un problème dans la compréhension entre vous et hibernate. En fait, ce que je vois, il y a une clé étrangère avec l'autre table qui est Address, pas homeAddress.

pouvez-vous également publier l'autre structure de table (adresse).

comme si l'autre nom de table est Address alors le plugin hibernate est lié pour créer un attribut de création avec le nom address, car je pense que le plugin n'a pas d'intelligence propre.

+0

le plugin connaît déjà mon nom de colonne de table. Pourquoi ne peut-il pas générer le champ privé dans ma classe en utilisant ce nom de colonne? –

+0

@ Sean: Votre nom de colonne est homeAddressId, mais il s'agit d'une clé étrangère qui a une à plusieurs associations, donc elle considérera la table d'association pas le nom de la colonne, vous pouvez voir le fichier hbm généré, vous trouverez la référence clé là-bas. –

0

Avant tout, votre domaine devrait être comme vous le souhaitez. Si vous devez apporter d'autres modifications au mappage (ORM), vous devrez peut-être le faire dans votre fichier hibernate-conf.xml. La classe générée et la classe actuelle sont les mêmes. Par exemple, le user.xml sera quelque chose comme ceci:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
<class name="User" table="ADMIN_USER_TBL"> 
<id name="id" type="string" column="ADMIN_USER_ID"> 
     <generator class="assigned" /> 
</id> 
<property name="name" column="FIRST_NAME" /> 
... 
</class> 
</hibernate-mapping> 

Ensuite, ont le mappage pour l'adresse:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
<class name="Address" table="ADDRESS_TBL"> 
<id name="id" type="string" column="ADMIN_USER_ID"> 
     <generator class="assigned" /> 
</id> 
<property name="address" column="ADDRESS1" /> 
<property name="address2" column="ADDRESS2" /> 
<property name="city" column="ADDRESS_CITY" /> 
<property name="state" column="ADDRESS_STATE" /> 
<property name="zip" column="ADDRESS_ZIP" /> 
... 
</class> 
</hibernate-mapping> 

Laissez-moi savoir si ça aide! ;)

+0

Je cherche un moyen d'avoir hibernate généré la classe pour générer le champ privé pour être le même avec le nom de la colonne db. Je ne veux pas modifier à la fois la classe générée ou le fichier de mappage. Merci pour votre réponse mais ce n'est pas ce que je cherche. Est-ce que je manque quelque chose? –

Questions connexes