Hibernate处理无主键的表的映射有关问题
Hibernate处理无主键的表的映射问题,其实很简单,就是把一条记录看成一个主键,即组合主键<composite-id>。
第一步:建表(略,无主键)。
第二部:进行配置文件的编写。
OK,下面可以进行相关操作了!
代码如下:
配置文件如下: package com.quanjj.function.test.model;
import java.io.Serializable;
import java.util.Date;
public class TestInfo implements Serializable {
private static final long serialVersionUID = -2132876417323439533L;
private String deviceId;
private String token;
private Date createDate;
private Date updateDate;
public String getDeviceId() {
return deviceId;
}
public void setDeviceId(String deviceId) {
this.deviceId = deviceId;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
// 注意这种情况下 我们需要重写equals和hashCode
public boolean equals(Object object) {
return true;
}
public int hashCode() {
return 1;
}
}
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.quanjj.function.test.model.TestInfo" table="MASS_APP_DEVICE_TOKEN" schema="mass"> <composite-id> <key-property name="deviceId" type="java.lang.String"> <column name="DEVICEID" /> </key-property> <key-property name="token" type="java.lang.String"> <column name="TOKEN" /> </key-property> <key-property name="createDate" type="java.util.Date"> <column name="CDATE" /> </key-property> <key-property name="updateDate" type="java.util.Date"> <column name="UDATE" /> </key-property> </composite-id> </class> </hibernate-mapping>