hibernate 一对一注解
bi如
用户的阅读历史和文章表是单向一对一关系,
阅读历史中通过deviceId外键关联文章表的主键

然后,再从getter setter上进行注解
@OneToOne(cascade = CascadeType.DETACH)//引用侧被删除后,被引用测游离,如果要级联删除,那就写其他类型,具体查阅CascadeType
@JoinColumn(name = "articleId", insertable = false, updatable = false)//该字段为外键,用于关联文章表 public Article getArticle() { return article; } public void setArticle(Article article) { this.article = article; }
然后就可以了
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.hs.model; import java.io.Serializable; import java.sql.Timestamp; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; import javax.persistence.Table; import org.hibernate.annotations.GenericGenerator; /** * 记录用户的文章阅读记录 * * @author G */ @Entity @Table(name = "t_accessRecotd") public class AccessRecord implements Serializable { private int id; private int articleId;//访问记录 private int userid; private int deviceId;//设备序列号,安装后生成,卸载重装后变更,以免手机易主情况 private Timestamp accessTimestamp;//访问时间 private Article article;//需要一个文章对象,保存文章的属性 private boolean isDeleted;//是否删除,标记一下,并不真正删除 public AccessRecord() { } @Id @GeneratedValue(generator = "_native") @GenericGenerator(name = "_native", strategy = "native") public int getId() { return id; } public void setId(int id) { this.id = id; } public int getArticleId() { return articleId; } public void setArticleId(int articleId) { this.articleId = articleId; } public int getUserid() { return userid; } public void setUserid(int userid) { this.userid = userid; } public int getDeviceId() { return deviceId; } public void setDeviceId(int deviceId) { this.deviceId = deviceId; } public Timestamp getAccessTimestamp() { return accessTimestamp; } public void setAccessTimestamp(Timestamp accessTimestamp) { this.accessTimestamp = accessTimestamp; } @OneToOne(cascade = CascadeType.DETACH) @JoinColumn(name = "articleId", insertable = false, updatable = false)//该字段为外键,用于关联文章表 public Article getArticle() { return article; } public void setArticle(Article article) { this.article = article; } public boolean isIsDeleted() { return isDeleted; } public void setIsDeleted(boolean isDeleted) { this.isDeleted = isDeleted; } }
测试一下

转为json送给前端


浙公网安备 33010602011771号