zoukankan      html  css  js  c++  java
  • Hibernate 基于主键的一对一关联关系随手记

    @Test
        public void testSave()
        {
            Boss boss = new Boss();
            boss.setName("A-老板");
            
            
            Company company = new Company();
            company.setName("A-公司");
            
            boss.setCompany(company);
            company.setBoss(boss);
            
    //        //这两行代码会保存两次没有外键端的对象,基于主键映射。所以在保存时,要么先保存没有外键的一端,要么只保存有外键的一端。
            oneToOnePrimaryService.saveBoss(boss);
    //        oneToOnePrimaryService.saveCompany(company);
            
        }
        
        @Test
        public void testGet()
        {
            //有外键的一端默认使用懒加载。
    //        Boss boss = oneToOnePrimaryService.getBoss(1);
    //        System.out.println(boss.getCompany().getClass().getName());
    //        
            
            //没有外键的一端不使用懒加载,而是直接将它引用的对象使用左外连接一并查询出来。
            Company company = oneToOnePrimaryService.getCompany(1);
            System.out.println(company.getBoss().getClass().getName());
        }
        
        @Test
        public void testUpdate()
        {
            
            //没有外键列不仅有外键约束还有唯一约束,即没有外键列一端的对象不能被有外键列一端的两个对象同时指向。这样才能够实现一对一。
            Company company = oneToOnePrimaryService.getCompany(2);
            
            Boss boss = oneToOnePrimaryService.getBoss(1);
            boss.setCompany(company);
            
            //没有抛异常,但是没有更新成功
            oneToOnePrimaryService.updateBoss(boss);
        }
        
        @Test
        public void testDelete()
        {
            //基于主键映射的方式支持级联保存,但不支持级联删除。
            
            //再删除时不能先删除没有外键的一端,因为它的主键被引用。
            Boss boss = oneToOnePrimaryService.getBoss(4);
            Company company = oneToOnePrimaryService.getCompany(4);
            
    //        oneToOnePrimaryService.deleteCompany(company);
            oneToOnePrimaryService.deleteBoss(boss);
            
        }
  • 相关阅读:
    机器学习规范的规则(两)核电规范与规则的偏好
    LeetCode: Palindrome Partitioning [131]
    KMP算法
    iostream与iostream.h乱弹琴
    进程加载与segment
    分析ELF的加载过程
    ELF文件的格式和加载过程
    进程加载进化史(进程加载与内存存贮管理)
    进程加载进化史与虚拟内存
    可执行文件的装载
  • 原文地址:https://www.cnblogs.com/GooPolaris/p/7919639.html
Copyright © 2011-2022 走看看