`
打倒小日本
  • 浏览: 47493 次
  • 性别: Icon_minigender_1
  • 来自: 辽宁
社区版块
存档分类
最新评论

共享主键的@OneToOne关联配置

阅读更多
一、代码使用
//初始化
User user = new User();
UserMore more = new UserMore();
//设置关联关系
user.setMore(more);
more.setUser(user);
//持久化
session.save(user);


二、具体配置
public class User
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = false)
    @PrimaryKeyJoinColumn
    private UserMore more;

    //其余属性...
}


public class UserMore
{
    @Id
    @GeneratedValue(generator = "pkGenerator")
    @GenericGenerator(
        name = "pkGenerator",
        strategy = "foreign",
        parameters = @Parameter(name = "property", value = "user")
    )
    private int id;

    @OneToOne(fetch = FetchType.LAZY, mappedBy = "more")
    @PrimaryKeyJoinColumn
    private User user;

    //其余属性...
}


三、具体说明
1.@PrimaryKeyJoinColumn
    告诉hibernate使用主键作为关联字段 大体相当于@JoinColumn(name="id")

2.@GenericGenerator(
        name = "pkGenerator",
        strategy = "foreign",
        parameters = @Parameter(name = "property", value = "user")
    )

   这段注解的意思是 使用当前对象中user属性的主键来作为本对象的主键(有点绕口啊 理解万岁吧...)

3.@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = false)
    optional很重要 指定关联属性不能为空
    如果想要实现延迟加载就一定要将这个属性设置为false
    这是因为JPA需要知道对应的数据是否存在后 才能决定是创建一个"延迟代理"还是"null引用"
    所以就不得不发起一条SQL请求来验证

分享到:
评论
1 楼 kaowww153 2010-04-19  
按照楼主的配置会报
null id generated for:class com.test.UserMore

相关推荐

    Hibernate关联映射-one to one单向外键关联

    NULL 博文链接:https://zhouhaitao.iteye.com/blog/1171227

    hibernate 关联映射(二) one to one(单向)

    NULL 博文链接:https://selvemen.iteye.com/blog/459102

    hibernate使用主键关联的一对一关系

    demo代码; 博客地址:http://blog.csdn.net/smilefyx/article/details/48951933

    Hibernate one to one 实例

    Hibernate one to one 源码!有注释

    Hibernate_Annotation关联映射

    关联的实体都共享同样的主键,(2).其中一个实体通过外键关联到另一个实体的主键(注意要模拟一对一关联必须在外键列上添加唯一约束),(3).通过关联表来保存两个实体之间的连接关系(要模拟一对一关联必须在每一个外键...

    spring-jpa-hibernate:使用Spring Data JPA和Hibernate作为JPA提供者的示例应用程序

    概述 示例应用程序演示了如何将Hibernate用作Spring Data JPA的JPA提供程序... 使用外键列的两个实体类之间的@OneToOne关联 关于abstract类的JPA count查询 在abstract类上执行count查询 自定义JPA功能 扩展Spring D

    Hibernate注解

    * @OneToOne 设置一对一个关联。cascade属性有五个值(只有CascadeType.ALL好用?很奇怪),分别是CascadeType.PERSIST(级联新建),CascadeType.REMOVE(级联删除),CascadeType.REFRESH(级联刷新),CascadeType....

    JPA 标注 JPA标签手册

    这是JPA标签配置手册,从ORACLE官方得到的资料,里面对JPA所有的标签都进行详细的说明。 Index of Annotations • A o @AssociationOverride o @AssociationOverrides o @AttributeOverride o @AttributeOverrides ...

    Hibernate注释大全收藏

    以上所有实体使用 JOINED 策略 Ferry和Boat class使用同名的主键关联(eg: Boat.id = Ferry.id), AmericaCupClass 和 Boat 关联的条件为 Boat.id = AmericaCupClass.BOAT_ID. 从父类继承的属性 @MappedSuperclass ...

    详解Hibernate cascade级联属性的CascadeType的用法

    详解Hibernate cascade级联属性的CascadeType的用法 cascade(级联) ...cascade表示级联操作,在hibernate配置注解@OneToOne,@OneToMany,@ManyToMany,@ManyToOne中的属性。 例如: @ManyToOne(c

    hibernate_onetoone实例

    里面是hibernate 一对一的例子,里面有数据库,是用oracle连接的,把脚本生成一下就可以了.

    一对一关联

    onetoone fk 一对一外键关联带数据库。 onetoone fk 一对一外键关联带数据库。 onetoone fk 一对一外键关联带数据库。

    mybatis20190102oneToOne

    该文件为我的博客“Mybatis注解方式实现一对一,一对多的关联查询”(链接:https://blog.csdn.net/weixin_44003141/article/details/85686694)的源代码,欢迎下载查看。

    JPA学习总结(二)--JPAOneToOne双向关联

    NULL 博文链接:https://lc2586.iteye.com/blog/721279

    Spring中的基础知识

    JPA Java 持久化 API,是官方定义的基于注解形式的技术规范, 进行对象关系映射(ORM),对象与表的映射,对象之间的关系与表...// 映射主键(PK) @Id // 映射到表的列(字段) @Column // 一对一 @OneToOne // 一对多

    关联关系.doc

    简单的关联关系的小例子: OneToOne: Person.java: package model; import javax.persistence.*; @Entity public class person { //标识属性 @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private...

    Hibernate_Course

    Hibernate课程 在这个资料库中,我尝试学习Hibernate 话题 简单的结局 预先映射 @OneToOne @OneToMany @多多 提取类型 懒惰的 渴望的

    lecture3_jpa_associations

    jpa_associations_complete 这是主要 JPA 协会注释的完整且自包含的示例 例如@ManyToOne、@OneToMany 和@OneToOne。... 单元测试允许验证关联集合的获取以及对关联集合的插入和更新的级联 配置是基于 Spring XML 的。

    hibernate_onetoone.part4.rar

    hibernate_onetoone.part4.rar

    hibernate_onetoone.part5.rar

    hibernate_onetoone.part5.rar

Global site tag (gtag.js) - Google Analytics