• 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);
            
        }
  • 相关阅读:
    flash使用lua
    如何写出兼容大部分浏览器的CSS 代码
    typeof 详解
    人月神话阅读笔记(三)
    人月神话阅读笔记(二)
    仓库物资管理
    动手动脑(四)
    人月神话阅读笔记(一)
    动手动脑(六 文件操作)及课后作业
    java异常处理
  • 原文地址:https://www.cnblogs.com/GooPolaris/p/7919639.html
Copyright © 2020-2023  润新知