Foreign key is always added on the "many" side;
User-Group:Many-to-one
1.Annotation
User class: Just need to add @ManyToOne tag before group variable
Group class:nothing
public class User { private int id; private String name; private Group group; @Id @GeneratedValue public int getId() { return id; } @ManyToOne public Group getGroup() { return group; } public void setGroup(Group group) { this.group = group; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public class Group { private int id; private String name; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
2.XML
User: <many-to-one name="xx of getXX" column="xxx"(optional)>
Group:nothing!
<class name="User" table ="U_User"> <id name="id"></id> <property name="name"></property> <!-- column="xx" name column as xx in DB --> <many-to-one name="group" column="groupId" > </many-to-one> </class> <hibernate-mapping package="com.hibernate.model"> <class name="Group" table="T_Group"> <id name="id"></id> <property name="name"></property> </class>