首页 > 其他分享 >hibernate annotion多对多关系示例

hibernate annotion多对多关系示例

时间:2023-06-05 11:33:23浏览次数:42  
标签:product hibernate name 示例 FetchType annotion products JoinTable fetch


实体之间是多对多的关系,如图:

错误的实体代码如下


JAVA 代码:
@ManyToMany
      
      (cascade = CascadeType.
      
      PERSIST, fetch = FetchType.
      
      EAGER
      
      )
     
     

 

     
     
      
         @JoinTable
      
      (name = 
      
      "product_packagetype:packageTypes:products"
      
      )
     
     

 

     
        
      
      private java.
      
      util.
      
      List
      
      implambition.
      
      forxxx.
      
      model.
      
      PackageType> packageTypes;
     
     

 

     
        
      
      /** 
     
     

 

     
     
      
          * @generated 
     
     

 

     
     
      
          */
     
     

 

     
     
      
         @ManyToMany
      
      (cascade = CascadeType.
      
      PERSIST, fetch = FetchType.
      
      EAGER
      
      )
     
     

 

     
     
      
         @JoinTable
      
      (name = 
      
      "product_productcolor:productColors:products"
      
      )
     
     

 

     
        
      
      private java.
      
      util.
      
      List
      
      implambition.
      
      forxxx.
      
      model.
      
      ProductColor> productColors;
     
     

 

     
        
      
      /** 
     
     

 

     
     
      
          * @generated 
     
     

 

     
     
      
          */
     
     

 

     
     
      
         @ManyToMany
      
      (cascade = CascadeType.
      
      PERSIST, fetch = FetchType.
      
      EAGER
      
      )
     
     

 

     
     
      
         @JoinTable
      
      (name = 
      
      "product_attach:attachs:products"
      
      )
     
     

 

     
        
      
      private java.
      
      util.
      
      List
      
      implambition.
      
      forxxx.
      
      model.
      
      Attach> attachs;


这样的代码本身不能正常运行,报错 cannot simultaneously fetch multiple bags。
改成FetchType.LAZY后,报错 WARN [main] 2009-05-10 16:46:18,655 - SQL Error: 1064, SQLState: 42000
ERROR [main] 2009-05-10 16:46:18,655 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':packageTypes:products packagetyp0_ left outer join PackageType packagetyp1_ on ' at line 1



最后只能修改为:
Product实体


JAVA 代码:
/** 
     
     

 

     
     
      
          * @generated 
     
     

 

     
     
      
          */
     
     

 

     
     
      
         @ManyToMany
      
      (cascade = CascadeType.
      
      PERSIST, fetch = FetchType.
      
      LAZY
      
      )
     
     

 

     
        
      
      //@JoinTable(name = "product_packagetype:packageTypes:products")
     
     

 

     
     
      
         @JoinTable
      
      (name = 
      
      "product_packagetype", joinColumns = 
      
      { @JoinColumn
      
      (name = 
      
      "packageTypes"
      
      ) 
      
      }, inverseJoinColumns = 
      
      { @JoinColumn
      
      (name = 
      
      "products"
      
      ) 
      
      }
      
      ) 
     
     

 

     
        
      
      private java.
      
      util.
      
      List
      
      implambition.
      
      forxxx.
      
      model.
      
      PackageType> packageTypes;
     
     

 

     
        
      
      /** 
     
     

 

     
     
      
          * @generated 
     
     

 

     
     
      
          */
     
     

 

     
     
      
         @ManyToMany
      
      (cascade = CascadeType.
      
      PERSIST, fetch = FetchType.
      
      LAZY
      
      )
     
     

 

     
        
      
      //@JoinTable(name = "product_productcolor:productColors:products")
     
     

 

     
     
      
         @JoinTable
      
      (name = 
      
      "product_productcolor", joinColumns = 
      
      { @JoinColumn
      
      (name = 
      
      "productColors"
      
      ) 
      
      }, inverseJoinColumns = 
      
      { @JoinColumn
      
      (name = 
      
      "products"
      
      ) 
      
      }
      
      )
     
     

 

     
        
      
      private java.
      
      util.
      
      List
      
      implambition.
      
      forxxx.
      
      model.
      
      ProductColor> productColors;
     
     

 

     
        
      
      /** 
     
     

 

     
     
      
          * @generated 
     
     

 

     
     
      
          */
     
     

 

     
     
      
         @ManyToMany
      
      (cascade = CascadeType.
      
      PERSIST, fetch = FetchType.
      
      LAZY
      
      )
     
     

 

     
        
      
      //@JoinTable(name = "product_attach:attachs:products")
     
     

 

     
     
      
         @JoinTable
      
      (name = 
      
      "product_attach", joinColumns = 
      
      { @JoinColumn
      
      (name = 
      
      "attachs"
      
      ) 
      
      }, inverseJoinColumns = 
      
      { @JoinColumn
      
      (name = 
      
      "products"
      
      ) 
      
      }
      
      )
     
     

 

     
        
      
      private java.
      
      util.
      
      List
      
      implambition.
      
      forxxx.
      
      model.
      
      Attach> attachs;


其他关联实体只列出一个示例,代码如下(注释掉的为studio生成的代码)


JAVA 代码:
/** 
     
     

 

     
     
      
          * @generated 
     
     

 

     
     
      
          */
     
     

 

     
        
      
      //@ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
     
     

 

     
     
      
         @ManyToMany
      
      (cascade = 
      
      {CascadeType.
      
      PERSIST, CascadeType.
      
      MERGE 
      
      }, fetch = FetchType.
      
      LAZY, mappedBy=
      
      "attachs"
      
      )
     
     

 

     
        
      
      private java.
      
      util.
      
      List
      
      implambition.
      
      forxxx.
      
      model.
      
      Product> products;

标签:product,hibernate,name,示例,FetchType,annotion,products,JoinTable,fetch
From: https://blog.51cto.com/u_16066979/6414238

相关文章

  • C语言多线程爬虫代码示例
    使用C语言编写多线程爬虫能够同时处理多条数据,提高了爬虫的并发度和效率。在编写多线程爬虫时仍需要注意线程安全性和错误处理机制,并根据系统资源和目标网站的特点调整线程数和优化并发策略,以提高程序效率和稳定性。以下是一个使用C语言多线程编写的简单爬虫示例,实现了并发爬取多......
  • 【电商api接口京东系列】获取推荐商品列表+获得商品评论演示示例
    数据采集是指获取和整理各种数据的过程,这些数据可以来自各种来源,例如互联网、社交媒体、传统媒体、设备传感器、企业内部系统等。通常,数据采集是企业或组织重要的商业活动之一。它可以帮助企业了解客户需求、产品趋势、市场机会,以及竞争对手的情况,进而做出更加明智的商业决策。......
  • Hibernate处理Oracle的分页,是用rownum。
    代码如下:Java代码publicStringgetLimitString(Stringsql,booleanhasOffset);{StringBufferpagingSelect=newStringBuffer(sql.length();+100);;if(hasOffset);{pagingSelect.append("select*from(selectrow_.*,rown......
  • WPF入门教程系列二十七 ——DataGrid使用示例MVVM模式(4)
    WPF入门教程系列目录WPF入门教程系列二——Application介绍WPF入门教程系列三——Application介绍(续)WPF入门教程系列四——Dispatcher介绍WPF入门教程系列五——Window介绍WPF入门教程系列十一——依赖属性(一)WPF入门教程系列十五——WPF中的数据绑定(一)   ......
  • 基于按annotation的hibernate主键生成策略
    这里讨论代理主键,业务主键(比如说复合键等)这里不讨论。[color=darkblue][b]一、JPA通用策略生成器[/b][/color]通过annotation来映射hibernate实体的,基于annotation的hibernate主键标识为@Id,其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是JPA的标准用法......
  • SpringMVC3.2.x + Hibernate4.2.x + ecache + Spring Security 3.0.5
    这只是部分代码,一些代码可以参考:[url]http://panyongzheng.iteye.com/blog/1871418[/url]SpringSecurity3.1最新配置实例[url它自带的附件也上传。SpringSecurity3十五日研究[url]http://www.blogjava.net/SpartaYew/archive/2013/09/23/350630.html[/......
  • Hibernate Tools源码的使用
    Eclipse中Hibernatetools的安装和使用[url]http://zhoualine.iteye.com/blog/1190141[/url]源码里面有一个很好的格式化类:org.hibernate.tool.hbm2x.[color=darkblue][b]XMLPrettyPrinter[/b][/color]调用publicvoidformatFiles(){ formatXml("......
  • 搭建Hibernate日志-log4jdbc
    官方:[url]https://code.google.com/p/log4jdbc/[/url]log4jdbc分析sql性能[url]http://hongliangpan.iteye.com/blog/1088398[/url]xml配置方法:log4jdbc日志框架介绍[url]http://blog.sina.com.cn/s/blog_57769b7b0101m1il.html[/url][url]http://xia......
  • Hibernate和 OsCache的使用
    下载地址:[url]http://java.net/downloads/oscache/[/url]oscache这个jar里面的jms架包已经无法下载了。那么我就在网上自己下载了一个jms.jar安装到本地的仓库中去,就ok了。进入安装maven的目录bin中,执行如下命令:[i][color=blue]mvninstall:install-file......
  • hibernate中自定义主键生成器
    自定义hibernate主键生成机制[url]http://walle1027.iteye.com/blog/1114824[/url]org.hibernate.id.MultipleHiLoPerTableGenerator主键生成器[url]http://suzefeng8806.iteye.com/blog/923511[/url][url]http://zhongrf.iteye.com/blog/972303[/url]......