Hibernate处理无主键的表的映射问题
Hibernate处理无主键的表的映射问题,其实很简单,就是把一条记录看成一个主键,即组合主键<composite-id>。
?
?
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>
?