Hibernate 다 중 자신 과 연 결 된 예 코드

4074 단어 Hibernate
배경 설명: 포럼 의 모든 사용자 (Admin 류) 는 여러 명의 친구 가 있 고 모든 친구 가 여러 사용자 의 친구 가 될 수 있 습 니 다.자신 이 많 고 많은 관 계 를 나타 내 는 것 이다.
Admin 클래스 코드:

package com.soonj.entity;

import java.util.HashSet;
import java.util.Set;


public class Admin {

private Integer aid;//

private String adminName;//admin's name--unique

private String password;//admin's password

private String authDay;//authorize day

private Set<Admin> friends = new HashSet<Admin>();

private Set<AdminMessage> messages = new HashSet<AdminMessage>();

public void addFriend(Admin friend){
friends.add(friend);
}

public void addMessage(AdminMessage message){
messages.add(message);
message.setBelonger(this);
}

public Set<Admin> getFriends() {
return friends;
}

public void setFriends(Set<Admin> friends) {
this.friends = friends;
}

public String getAdminName() {
return adminName;
}

public void setAdminName(String adminName) {
this.adminName = adminName;
}

public Integer getAid() {
return aid;
}

public void setAid(Integer aid) {
this.aid = aid;
}

public String getAuthDay() {
return authDay;
}

public void setAuthDay(String authDay) {
this.authDay = authDay;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public Set<AdminMessage> getMessages() {
return messages;
}

public void setMessages(Set<AdminMessage> messages) {
this.messages = messages;
}

}

CREATE TABLE `friendrelation` (                                   
`OwenerId` int(11) NOT NULL default '0',          
`FriendId` int(11) NOT NULL default '0',          
PRIMARY KEY (`OwenerId`,`FriendId`)                                  
) ENGINE=MyISAM DEFAULT CHARSET=utf8
admin 클래스 의 hibenate 파일 Admin. hbm. xml 내용 (주석 에 간단 한 설명 이 있 음):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.soonj.entity">
<class name="Admin" table="admins">
<id name="aid" column="aid" type="java.lang.Integer">
<generator class="increment"></generator>
</id>
<property name="adminName" column="adminName" not-null="true" unique="true"></property>
<property name="password" column="password" not-null="true"></property>
<property name="authDay" column="authDay" not-null="true"></property>
<set name="friends" table="friendrelation" cascade="save-update" lazy="false" inverse="false">
<key column="OwenerId"></key><!--          -->
<many-to-many class="Admin" column="FriendId"/><!--          -->
</set>
<set name="messages" cascade="save-update" lazy="false" inverse="true">
<key column="mfid"></key>
<one-to-many class="AdminMessage"/>
</set>
</class>
</hibernate-mapping>

참고:
http://topic.csdn.net/u/20080516/11/c86b95b1-8a09-43e6-96cd-8058f051bfe4.html

좋은 웹페이지 즐겨찾기