组件作为联合标识符,必须满足:
它必须实现java.io.Serializable接口
它必须重新实现equals()和hashCode()方法, 始终和组合关键字在数据库中的概念保持一致
你不能使用一个IdentifierGenerator产生组合关键字。一个应用程序必须分配它自己的标识符。
【注意:在Hibernate3中,第二个要求并非是Hibernate强制必须的。但最好这样做。】
<class name="com.jason.compositeId.OrderDetail" table="t_orderdetail">
<composite-id name="id" class="com.jason.compositeId.CompositeId">
<key-property name="orderId" column="order_id" />
<key-property name="itemId" column="item_id" />
</composite-id>
<property name="count" column="count" type="int" />
</class>
<!--
create table t_orderdetail ( order_id bigint not null, item_id bigint not null, count bigint not null, primary key(order_id, item_id) )
-->
public class CompositeId implements Serializable{
private int orderId;
private int itemId;
public int getItemId() {
return itemId;
}
public void setItemId(int itemId) {
this.itemId = itemId;
}
public int getOrderId() {
return orderId;
}
public void setOrderId(int orderId) {
this.orderId = orderId;
}
@Override
public boolean equals(Object obj) {
return super.equals(obj);
}
@Override
public int hashCode() {
return (orderId + itemId)^2;
}
}
public class OrderDetail {
private CompositeId id;
private int count;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public CompositeId getId() {
return id;
}
public void setId(CompositeId id) {
this.id = id;
}
}
分享到:
相关推荐
前端项目-d3-composite-projections,像阿尔伯苏预测一样,增加了几个D3预测,以显示离大陆较远的国家靠近它。
usb-device-composite-代码参考
官网下载,Eclipse插件:WSO2 ESB tooling,适配WSO2 ESB 5.0.0。 仅 Eclipse Mars.2 Release (4.5.2) 版本可使用(我用的是Eclipse JEE Mare.2)。 如果需要Eclipse汉化,必须先安装 WSO2 ESB tooling,再安装...
标签:addressbook-address-composite-types-1.1-RC1.jar.zip,addressbook,address,composite,types,1.1,RC1,jar.zip包下载,依赖包
Laravel开发-composite-unique-validator Laravel 5复合唯一验证器
USB_Composite-2021-11-13.zip
NULL 博文链接:https://alleni123.iteye.com/blog/1982256
composite-jackson.zip,标准jackson依赖项的集合
composite-liquibase.zip,集中了解酒的版本。
标签:addressbook-address-composite-types-1.1.jar.zip,addressbook,address,composite,types,1.1,jar.zip包下载,依赖包
标签:addressbook-address-composite-svc-1.2.jar.zip,addressbook,address,composite,svc,1.2,jar.zip包下载,依赖包
标签:addressbook-address-composite-types-1.2.jar.zip,addressbook,address,composite,types,1.2,jar.zip包下载,依赖包
标签:addressbook-address-composite-schema-1.2.jar.zip,addressbook,address,composite,schema,1.2,jar.zip包下载,依赖包
标签:addressbook-address-composite-webcomp-1.1.jar.zip,addressbook,address,composite,webcomp,1.1,jar.zip包下载,依赖包
标签:addressbook-address-composite-schema-1.1.jar.zip,addressbook,address,composite,schema,1.1,jar.zip包下载,依赖包
标签:addressbook-address-composite-svc-1.1.jar.zip,addressbook,address,composite,svc,1.1,jar.zip包下载,依赖包
标签:addressbook-address-wsclient-composite-main-1.2.jar.zip,addressbook,address,wsclient,composite,main,1.2,jar.zip包下载,依赖包
标签:addressbook-address-composite-schema-1.1-RC1.jar.zip,addressbook,address,composite,schema,1.1,RC1,jar.zip包下载,依赖包
标签:addressbook-address-wsclient-composite-main-1.1.jar.zip,addressbook,address,wsclient,composite,main,1.1,jar.zip包下载,依赖包