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送给前端

hibernate 一对一注解的更多相关文章
- Java、Hibernate(JPA)注解大全
1.@Entity(name=”EntityName”) 必须,name为可选,对应数据库中一的个表 2.@Table(name=””,catalog=””,schema=””) 可选,通常和@Ent ...
- hibernate annotation注解方式来处理映射关系
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式 ...
- HIBERNATE一对一双向外键联合主键关联
HIBERNATE一对一双向外键联合主键关联: 一. 创建主键类:这个主键必须实现serializedable接口和重写其中的hashCode方法和equals方法:为主键类添加一个叫做@Embedd ...
- Hibernate Annotations 注解
Hibernate Annotations 注解 对于org.hibernate.annotations与org.hibernate.persistence,它的注释比如Columns,可是不知道怎么 ...
- Hibernate基于注解annotation的配置
Annotation在框架中是越来越受欢迎了,因为annotation的配置比起XML的配置来说方便了很多,不需要大量的XML来书写,方便简单了很多,只要几个annotation的配置,就可以完成我们 ...
- Java进阶知识07 Hibernate一对一双向外键关联(Annotation+XML实现)
1.Annotation 注解版 1.1.创建Husband类和Wife类 package com.shore.model; import javax.persistence.Entity; impo ...
- Java进阶知识06 Hibernate一对一单向外键关联(Annotation+XML实现)
1.Annotation 注解版 1.1.创建Husband类和Wife类 package com.shore.model; import javax.persistence.Entity; impo ...
- hibernate一对一外键双向关联
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...
- hibernate一对一外键单向关联
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...
随机推荐
- 新金融ABS如何做?听听这几十家券商、互金高管的经验之谈
新金融ABS如何做?听听这几十家券商.互金高管的经验之谈 2016-11-24 零壹财经 ID:36104743 时间:2016年11月初 地点:北京东城区南湾子3号院(场地提供方:无讼.天同律师事务 ...
- IENumerable_Test
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...
- USACO 2006 November Gold Fence Repair /// 贪心(有意思)(优先队列) oj23940
题目大意: 输入N ( 1 ≤ N ≤ 20,000 ) :将一块木板分为n块 每次切割木板的开销为这块木板的长度,即将长度为21的木板分为13和8,则开销为21 接下来n行描述每块木板要求的长度Li ...
- POJ 3376 Finding Palindromes EX-KMP+字典树
题意: 给你n个串串,每个串串可以选择和n个字符串拼接(可以自己和自己拼接),问有多少个拼接后的字符串是回文. 所有的串串长度不超过2e6: 题解: 这题由于是在POJ上,所以string也用不了,会 ...
- css中字体属性的简写
- (转)打开Mac OSX原生的NTFS功能
xingchongsmbp3:~ xingchong$ xingchongsmbp3:~ xingchong$ xingchongsmbp3:~ xingchong$ sudo ln -s /Volu ...
- Ascii码 、16进制与 char
对于一个非计算机专业出身的人,以前只知道计算机中所有的数据都是以二进制形式进行存储,计算,通信的.但是人类文明中,主要的信息展现以文本的形式展现的.如果使用内存中的0和1来表示文本一直 ...
- tbody设置超出固定的高度出现滚动条,没超出不显示。
没有超出时显示样式,不显示滚动条: 超出时显示滚动条: 1.html <table class="table"> <thead> <tr> &l ...
- 深入理解Java虚拟机(类加载机制)
文章首发于微信公众号:BaronTalk 上一篇文章我们介绍了「类文件结构」,这一篇我们来看看虚拟机是如何加载类的. 我们的源代码经过编译器编译成字节码之后,最终都需要加载到虚拟机之后才能运行.虚拟机 ...
- opencv3 使用glob遍历并修改文件名
1.函数说明 string::find()函数:是一个字符或字符串查找函数,该函数有唯一的返回类型,即string::size_type,即一个无符号整形类型,可能是整数也可能是长整数.如果查找成功, ...