文档章节

hibernate的共享主键处理

luamas
 luamas
发布于 2016/04/17 13:41
字数 143
阅读 33
收藏 0

这个共享主键配置比较简单,但是有一点非常要注意,在执行保存执行之前一定要双向set,如下

article.setArticleData(articleData);
articleData.setArticle(article);



article表如下



public class Article implements Serializable {
    @Id
    @Column(name="id")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;
    @OneToOne(targetEntity=ArticleData.class, cascade={CascadeType.ALL})
    @PrimaryKeyJoinColumn
    private ArticleData articleData;
}

articleData如下

public class ArticleData implements Serializable {
    @Id
    @GenericGenerator(name="foreignKey", strategy="foreign", parameters=@Parameter(name="property", value="article"))
    @GeneratedValue(generator="foreignKey", strategy=GenerationType.IDENTITY)
    private Long id;
    @OneToOne(targetEntity=Article.class, cascade={CascadeType.ALL}, mappedBy="articleData")
    @PrimaryKeyJoinColumn(name="id", referencedColumnName="id")
    private Article article;
}



如果不执行双向set会报 attempted to assign id from null one-to-one property的错误

© 著作权归作者所有

共有 人打赏支持
luamas
粉丝 28
博文 38
码字总数 26305
作品 0
东城
高级程序员
私信 提问
总结:Hibernate关联关系映射——七种映射的实现(更新中)

一对一关联 Hibernate映射实体的一对一关联方式有共享主键方式和唯一外键方式。共享主键就是两个表的主键完全相同,保证一对一。唯一外键就是一个表的唯一外键对应另一个表的唯一主键,来保证...

xp731574722
2017/12/13
0
0
理解JPA注解@GeneratedValue

一、JPA通用策略生成器 通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id, 其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法,...

一生只为虞美人
07/25
0
0
Hibernate主键生成机制

这里介绍Hibernate主键生成机制,数据库提供的主键生成机制,往往是通过在一个内部表中保存当前主键状态。 AD: 学习Hibernate主键生成机制时,经常会遇到问题,这里将介绍Hibernate主键生成...

dong.li
2012/04/24
0
0
day32_Hibernate学习笔记_04

一、Hbernate中的日志框架整合log4j(了解) Hibernate 利用 Simple Logging Facade for Java (SLF4J) 来记录不同系统事件的日志。SLF4J 可以根据你选择的绑定把日志输出到几个日志框架(NOP、...

黑泽明军
07/15
0
0
hibernate 环境搭建测试

对于hibernate的介绍,网络上一搜一堆,恐怕我写的也没前辈总结的好。 这个博主总结的十分好,方便大家欣赏 http://blog.csdn.net/liujiahan629629/article/details/21442607 真正要掌握,还得...

东方部落
2017/06/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ZooKeeper命令大全

创建节点 # 创建节点,-s表示顺序节点,-e表示临时节点,默认是持久节点create [-s] [-e] path data acl # 示例create /zk-book 123 查看节点 ls path [watch] # 示例ls /zk-book 获取...

爱宝贝丶
18分钟前
0
0
QLExpress基本语法

QLExpress基本语法 一、背景介绍 由阿里的电商业务规则、表达式(布尔组合)、特殊数学公式计算(高精度)、语法分析、脚本二次定制等强需求而设计的一门动态脚本引擎解析工具。 在阿里集团有...

xiaomin0322
19分钟前
0
0
Elasticsearch节点角色类型node.master和node.data说明s

一般地,ElasticSearch集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。这些功能是由两个属性控制的(node.master和node.data)。默认情况下这两个属性的值都是tru...

傲娇字符
34分钟前
5
0
rem的使用

(function (doc, win) { var docEl = doc.documentElement var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize' var recalc = function () { var cl......

Js_Mei
41分钟前
1
0
idea 删除代码的注释

搜索栏使用 正则表达式搜索 (/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/|[ \t]*//.*) 会搜索出来所有注释的代码 用空格replace替换掉就可以了。 或者搜索 (/\*([^*]|[\r\n]|(\*+([^*/]|[\r\...

时刻在奔跑
44分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部