• atitit.atitit.hb many2one relate hibernate 多对一关联配置..


    atitit.atitit.hb many2one relate hibernate 多对一关联配置..

    1. 多对一单向 @ManyToOne 1

    1. 其中@JoinColumn 注解 2

    2. @targetEntity注解 2

    2. 生成的sql LEFT OUTER 2

    3. 多对一也可以通过关联表的方式来映射,通过 @JoinTable 注解可 2

    4. 另外一个属性也关联到table column(recomn?? ) 3

    5. 参考 3

    1. 多对一单向 @ManyToOne

    (数据库设计,多在在多方设计外键)

     数据库设计:主键列不可分,联合主键不可有部分依赖,不能存在传递依赖

     注解中在多方的类中加入一个"一方"的类,然后在get方法之上加上@ManyToOne

    作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

    ·     @ManyToOne(cascade=   {CascadeType.PERSIST,CascadeType.MERGE},targetEntity= CompanyImpl.class)  

    ·    @JoinColumn(name="COMP_ID")  

    ·    public Company getCompany() {  

    ·      return company;  

    ·    }  

    ·    ...  

    ·  

    1. 其中@JoinColumn 注解

    · 是可选的,关键字段默认值和一对一关联的情况相似。列名为:主题的关联属性名 + 下划线 + 被关联端的主键列名。本例中为company_id,因为关联的属性是company, Company的主键为 id.  

    · creator_ID   %属性名称%_主键列名(not cls property name)

    · 要是不能coc,要设置此注解.

    ·   

    2. @targetEntity注解

    · 有个targetEntity属性,该参数定义了目标实体名。通常不需要定义,大部分情况为默认值。但下面这种情况则需要 targetEntity 定义(使用接口作为返回值,而不是常用的实体)。

    ·  ...  

    ·   

    2. 生成的sql LEFT OUTER 

    FROM

    gv_material gvmaterial0_

    LEFT OUTER JOIN t_user_users tuserusers1_ ON gvmaterial0_.create_user = tuserusers1_.ID

    3. 多对一也可以通过关联表的方式来映射,通过 @JoinTable 注解可

    · 定义关联表。该关联表包含指回实体的外键(通过@JoinTable.joinColumns)以及指向目标实体表的外键(通过@JoinTable.inverseJoinColumns).  

    ·   

    · @Entity()  

    · public class Flight implements Serializable {  

    ·   

    ·    @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )  

    ·    @JoinTable(name="Flight_Company",  

    ·        joinColumns = @JoinColumn(name="FLIGHT_ID"),  

    ·        inverseJoinColumns = @JoinColumn(name="COMP_ID")  

    ·    )  

    ·    public Company getCompany() {  

    ·        return company;  

    ·    }  

    ·    ...  

    · }  

    ·   

    4. 另外一个属性也关联到table column(recomn?? )

    Jonjye nen single test l ...

    insertable = false:该外键列不出现在INSERT语句里面
    updatable = false:该外键列不出现在UPDATE语句里面
    这种用法最常见的情况就是这个类里面有另外一个属性直接关联到一个外键:
    @Column(name="USER_ID")
    Long user_id;
    @OneToMany
    @JoinColumn(name = "USER_ID", insertable = false,updatable = false)
    User user; 

    5. 参考

    hibernate注解 - java - ITeye技术网站.htm

    使用Hibernate注解来配置多对一单向的三种方法_Saminar2012_新浪博客.htm

  • 相关阅读:
    弹弹弹,走到哪里弹到哪里 —— 关于上海电信强制弹窗广告
    对Live Writer支持的继续改进:设置随笔地址别名(EntryName)
    【公告】6月20日0:00~1:00(今天夜里)机房网络设备调整
    上周热点回顾(6.46.10)
    [功能改进]Live Writer发博支持“建分类、加标签、写摘要”
    上周热点回顾(6.186.24)
    上周热点回顾(6.116.17)
    [转].NET 绘制 EAN13 (商品条码)
    [转]C#连接操作mysql实例
    [转]MySQLHelper类
  • 原文地址:https://www.cnblogs.com/attilax/p/5963927.html
Copyright © 2020-2023  润新知