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);
            
        }
  • 相关阅读:
    死磕java(3)
    死磕java(2)
    死磕java(1)
    开源 android
    android开发:点击缩略图查看大图
    android java获取当前时间的总结
    Android多屏幕适配
    Android-关于屏幕适配的一些经验
    Android TextView自动换行文字排版参差不齐的原因
    proguard.cfg 配置文件
  • 原文地址:https://www.cnblogs.com/GooPolaris/p/7919639.html
Copyright © 2011-2022 走看看