hibernate注解
2015-11-02 08:44
190 查看
一对一关联:
1.主表类A与从表类B的主键值相对应。
主表:@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
public B getB(){
Return b;
}
从表:无
2.主表A中有一个从表属性是B类型的b
主表:@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="主表外键") //这里指定的是数据库中的外键字段。
public B getB(){
return b;
}
从表:无
3.主表A中有一个从表属性是B类型的b,同时,从表B中有一个主表属性是A类型的a
主表:@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="主表外键") //这里指定的是数据库中的外键字段。
public B getB(){
return b;
}
从表:@OneToOne(mappedBy = "主表类中的从表属性")
public 主表类 get主表类(){
return 主表对象
}
一对多关联:
1.单向一对多:一方有集合属性,包含多个多方,而多方没有一方的引用。
在一方:
@OneToMany 默认会使用连接表做一对多关联
添加@JoinColumn(name="xxx_id") 后,就会使用外键关联,而不使用连接表了。
2.双向一对多
1)在多方
@ManyToOne
@JoinColumn(name="自己的数据库外键列名")
2)在一方
@OneToMany(mappedBy="多端的关联属性名")
@JoinColumn(name="对方的数据库外键列名")
多对一关联:
1.单向多对一:多方有一方的引用,一方没有多方的引用。
在多方
@ManyToOne(targetEntity=XXXX.class) //指定关联对象
@JoinColumn(name="") //指定产生的外键字段名
2.双向多对一:配置方式同双向一对多。
多对多关联:
1.单向多对多:
在主控方:
@ManyToMany
@JoinTable(name="中间表名",
joinColumns={@JoinColumn(name="中间表中主表的关联列")},
inverseJoinColumns={@JoinColumn(name="中间表中从表的关联列")})
2.双向多对多
在主控方:
@ManyToMany
@JoinTable(name="中间表名",
joinColumns={@JoinColumn(name="中间表中主表的关联列")},
inverseJoinColumns={@JoinColumn(name="中间表中从表的关联列")})
在被控方:
@ManyToMany(mappedBy="主体端的属性名")
1.主表类A与从表类B的主键值相对应。
主表:@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
public B getB(){
Return b;
}
从表:无
2.主表A中有一个从表属性是B类型的b
主表:@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="主表外键") //这里指定的是数据库中的外键字段。
public B getB(){
return b;
}
从表:无
3.主表A中有一个从表属性是B类型的b,同时,从表B中有一个主表属性是A类型的a
主表:@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="主表外键") //这里指定的是数据库中的外键字段。
public B getB(){
return b;
}
从表:@OneToOne(mappedBy = "主表类中的从表属性")
public 主表类 get主表类(){
return 主表对象
}
一对多关联:
1.单向一对多:一方有集合属性,包含多个多方,而多方没有一方的引用。
在一方:
@OneToMany 默认会使用连接表做一对多关联
添加@JoinColumn(name="xxx_id") 后,就会使用外键关联,而不使用连接表了。
2.双向一对多
1)在多方
@ManyToOne
@JoinColumn(name="自己的数据库外键列名")
2)在一方
@OneToMany(mappedBy="多端的关联属性名")
@JoinColumn(name="对方的数据库外键列名")
多对一关联:
1.单向多对一:多方有一方的引用,一方没有多方的引用。
在多方
@ManyToOne(targetEntity=XXXX.class) //指定关联对象
@JoinColumn(name="") //指定产生的外键字段名
2.双向多对一:配置方式同双向一对多。
多对多关联:
1.单向多对多:
在主控方:
@ManyToMany
@JoinTable(name="中间表名",
joinColumns={@JoinColumn(name="中间表中主表的关联列")},
inverseJoinColumns={@JoinColumn(name="中间表中从表的关联列")})
2.双向多对多
在主控方:
@ManyToMany
@JoinTable(name="中间表名",
joinColumns={@JoinColumn(name="中间表中主表的关联列")},
inverseJoinColumns={@JoinColumn(name="中间表中从表的关联列")})
在被控方:
@ManyToMany(mappedBy="主体端的属性名")
相关文章推荐
- SqlServer 2015修改表时出现“save changes is not permitted…”的解决方法
- ppm内存溢出问题解决
- 开发 Spring Redis 应用程序
- UML-状态图、活动图和交互图
- 机器学习实战笔记之一(调试NumPy)
- should not include d3dtypes.h when compiling for DX8 or newer interfaces
- mysql 优化 一些简单实用的原则
- 适合初学者理解的A*(A星)算法(转)
- 下拉菜单 spinner ,popupwindow, 自定义popupwindow总结
- Java编码问题
- Modbus总结
- Single Number
- Object-C系列<Xcode中ARC 下两种释放对象的方法>
- OC利用delegate实现霓虹灯效果
- Win10官方大补要跳票:内测用户多试用一段时间
- final和super的用法
- iOS应用内支付(IAP)的那些坑
- 利用OpenSSL生成RSA公钥私钥
- Java关键字final
- OC第一天