1. 程式人生 > >hibernate關聯關係註解(一對多、多對一、一對一)

hibernate關聯關係註解(一對多、多對一、一對一)

一對多、多對一、一對一的註解實現

casecade={CasecadeType.REFRESH}的含義是隻是查詢級聯,它還有其他3個型別:

CascadeType.MERGE級聯更新

CascadeType.PERSIST級聯儲存

CascadeType.REMOVE級聯刪除

optional=false定義關聯類不一定要存在

@JoinColumn 關聯的物件的欄位

@ManyToOne多對一   @OneToMany一對多 @OneToOne一對一

需要注意的是一對一關聯關係,hibernate會建立唯一約束,用錯的話,後果很嚴重奧。

event物件

@Entity
@Table(name = "event")
public class EventEntity implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "eventId", nullable = true)
	private long eventId;               //事件id
	private String eventNote;           //事件內容
	private String eventTitle;          //事件標題
	private String createTime;          //建立時間
	@ManyToOne(cascade = {CascadeType.REFRESH}, optional = false)
	@JoinColumn(name="userId")
	private UserEntity user;
	@OneToOne(optional = false, cascade = CascadeType.REFRESH)
	@JoinColumn(name = "eventTitleImage")
	private EventImageEntity eventTitleImage;  //事件封面照片
	private String eventAddress;       //事件地址
	private String eventType;          //事件型別
	private String lon;                //經度
	private String lat;                //緯度
	private String eventstate;         //事件狀態
	@OneToMany(cascade = {CascadeType.REFRESH})
	@JoinColumn(name = "eventId")
        private List<EventImageEntity> eventImageList;
	public long getEventId() {
		return eventId;
	}

	public void setEventId(long eventId) {
		this.eventId = eventId;
	}

	public String getEventNote() {
		return eventNote;
	}

	public void setEventNote(String eventNote) {
		this.eventNote = eventNote;
	}

	public String getEventTitle() {
		return eventTitle;
	}

	public void setEventTitle(String eventTitle) {
		this.eventTitle = eventTitle;
	}

	 public String getCreateTime() {
		return createTime;
	}

	public void setCreateTime(String createTime) {
		this.createTime = createTime;
	}

	public UserEntity getUser() {
		return user;
	}

	public void setUser(UserEntity user) {
		this.user = user;
	}

	public EventImageEntity getEventTitleImage() {
		return eventTitleImage;
	}

	public void setEventTitleImage(EventImageEntity eventTitleImage) {
		this.eventTitleImage = eventTitleImage;
	}

	public String getEventAddress() {
		return eventAddress;
	}

	public void setEventAddress(String eventAddress) {
		this.eventAddress = eventAddress;
	}

	public String getEventType() {
		return eventType;
	}

	public void setEventType(String eventType) {
		this.eventType = eventType;
	}

	public String getLon() {
		return lon;
	}

	public void setLon(String lon) {
		this.lon = lon;
	}

	public String getLat() {
		return lat;
	}

	public void setLat(String lat) {
		this.lat = lat;
	}

	public String getEventstate() {
		return eventstate;
	}

	public void setEventstate(String eventstate) {
		this.eventstate = eventstate;
	}

	public List<EventImageEntity> getEventImageList() {
		return eventImageList;
	}

	public void setEventImageList(List<EventImageEntity> eventImageList) {
		this.eventImageList = eventImageList;
	}

}
user物件
@Entity
@Table(name = "user")
public class UserEntity implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "userId")
	private long userId;
	private String username;   //使用者名稱稱   
	private String phone;      //使用者電話
	private String password;   //密碼
	@OneToOne(optional = false, cascade = CascadeType.REFRESH)
	@JoinColumn(name = "userimage")
	private ImageEntity userImage;  //使用者頭像
	private String isRole;          //是否有許可權
	private String createTime;      //建立時間
	private String sign;            //簽名
	private String sex;             //性別
	private String age;             //年紀
	private String birthday;        //生日
	private String numberId;        //使用者ID標示
	private String emotional;		//情感狀態
	private String updateTime;      //修改時間
	private String userstate;       //使用者狀態(1正常 2禁用 3刪除)
	@ManyToOne(cascade={CascadeType.REFRESH},optional = false)
	@JoinColumn(name="userLevel")
        private Exp exp;                //等級
	private long exping;            //當前經驗值
	public long getUserId() {
		return userId;
	}

	public void setUserId(long userId) {
		this.userId = userId;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}


	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getPassword() {
		return password;
	}

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

	public ImageEntity getUserImage() {
		return userImage;
	}

	public void setUserImage(ImageEntity userImage) {
		this.userImage = userImage;
	}

	public String getIsRole() {
		return isRole;
	}

	public void setIsRole(String isRole) {
		this.isRole = isRole;
	}

	public String getCreateTime() {
		return createTime;
	}

	public void setCreateTime(String createTime) {
		this.createTime = createTime;
	}

	public String getSign() {
		return sign;
	}

	public void setSign(String sign) {
		this.sign = sign;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	public String getBirthday() {
		return birthday;
	}

	public void setBirthday(String birthday) {
		this.birthday = birthday;
	}

	public String getNumberId() {
		return numberId;
	}

	public void setNumberId(String numberId) {
		this.numberId = numberId;
	}

	public String getEmotional() {
		return emotional;
	}

	public void setEmotional(String emotional) {
		this.emotional = emotional;
	}

	public String getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(String updateTime) {
		this.updateTime = updateTime;
	}

	public String getUserstate() {
		return userstate;
	}

	public void setUserstate(String userstate) {
		this.userstate = userstate;
	}

	public Exp getExp() {
		return exp;
	}

	public void setExp(Exp exp) {
		this.exp = exp;
	}

	public long getExping() {
		return exping;
	}

	public void setExping(long exping) {
		this.exping = exping;
	}

}
image物件
@Entity
@Table(name = "image")
public class ImageEntity implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "imageId")
	private long imageId;
	private String url;

	public long getImageId() {
		return imageId;
	}

	public void setImageId(long imageId) {
		this.imageId = imageId;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

}
exp物件
@Entity
@Table(name = "exp")
public class Exp {
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "expId")
    private long expId;
    private long grade;     //等級
    private long expnumber; //經驗值
    private String expname; //顯示名稱
	public long getExtId() {
		return expId;
	}
	public void setExtId(long expId) {
		this.expId = expId;
	}
	public long getGrade() {
		return grade;
	}
	public void setGrade(long grade) {
		this.grade = grade;
	}
	public long getExpnumber() {
		return expnumber;
	}
	public void setExpnumber(long expnumber) {
		this.expnumber = expnumber;
	}
	public String getExpname() {
		return expname;
	}
	public void setExpname(String expname) {
		this.expname = expname;
	}
    
}
eventImage物件
@Entity
@Table(name = "eventimage")
public class EventImageEntity implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "eventImageId")
	private long eventImageId;
	private long eventId;
	@OneToOne(optional = false, cascade = CascadeType.REFRESH)
	@JoinColumn(name = "imageId")
	private ImageEntity image;
	public long getEventImageId() {
		return eventImageId;
	}
	public void setEventImageId(long eventImageId) {
		this.eventImageId = eventImageId;
	}
	public long getEventId() {
		return eventId;
	}
	public void setEventId(long eventId) {
		this.eventId = eventId;
	}
	public ImageEntity getImage() {
		return image;
	}
	public void setImage(ImageEntity image) {
		this.image = image;
	}
	
}