hibernate一对多配置

创建实体类(一的一方)

package com.vtradex.wms.server.model.record;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import com.vtradex.thorn.server.model.VersionalEntity;

/**
 * 录音小程序用户实体
 * @author azor
 *
 */
public class MiniProgramUser extends VersionalEntity {
	
	private static final long serialVersionUID = -5660039011923098724L;

	/** 手机号,作为登录用户名*/
	private String phoneNum;
	
	/** 登录密码*/
	private String password;
	
	/** 真实姓名*/
	private String name;
	
	/** 登录时间*/
	private Date loginTime;
	
	/** 用户与录音关系:一对多*/
	private Set<Record> records = new HashSet<Record>();

	public String getPhoneNum() {
		return phoneNum;
	}

	public void setPhoneNum(String phoneNum) {
		this.phoneNum = phoneNum;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Date getLoginTime() {
		return loginTime;
	}

	public void setLoginTime(Date loginTime) {
		this.loginTime = loginTime;
	}

	public Set<Record> getRecords() {
		return records;
	}

	public void setRecords(Set<Record> records) {
		this.records = records;
	}
	
}

创建hibernate配置文件(注意要修改SEQ_MiniProgramUser)

<?xml version="1.0" encoding="UTF-8"?>
<!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.vtradex.wms.server.model.record.MiniProgramUser" table="MINI_PROGRAM_USER">
		<id name="id" column="ID" type="long">
			<generator class="native">
				<param name="sequence">SEQ_MiniProgramUser</param>
				<param name="parameters">START WITH 1</param>
			</generator>
		</id>
		<property name="phone" type="string" column="PHONE" length="15" />
		<property name="password" type="string" column="PASSWORD" length="64" />
		<property name="name" type="string" column="NAME" length="20" />
		<property name="loginTime" type="timestamp" column="LOGIN_TIME"/>
		<set name="records" inverse="true" lazy="true" cascade="all-delete-orphan">
			<key column="MINI_PROGRAM_USER_ID"/>
			<one-to-many class="com.vtradex.wms.server.model.record.Record"></one-to-many>
		</set>
		
		<component name="updateInfo" class="com.vtradex.thorn.server.model.UpdateInfo">
			<property name="creatorId" type="long" column="CREATOR_ID"/>
			<property name="creator" type="string" length="50" column="CREATOR"/>
			<property name="createdTime" type="timestamp" column="CREATED_TIME"/>
			<property name="lastOperatorId" type="long" column="LAST_OPERATOR_ID"/>
			<property name="lastOperator" type="string" length="50" column="LAST_OPERATOR"/>
			<property name="updateTime" type="timestamp" column="UPDATE_TIME"/>
		</component>
	</class>
</hibernate-mapping>

创建实体类(多的一方)

package com.vtradex.wms.server.model.record;

import java.util.Date;

import com.vtradex.thorn.server.model.VersionalEntity;

/**
 * 录音小程序录音文件实体类
 * @author azor
 *
 */
public class Record extends VersionalEntity {

	private static final long serialVersionUID = 3657739233745526130L;
	
	/** 文件名 */
	private String fileName;
	
	/** 文件存储路径 */
	private String filePath;
	
	/** 文件时长 */
	private String fileTime;
	
	/** 上传日期 */
	private Date uploadDate;
	
	/** 是否已读 */
	private Boolean isRead;
	
	/** 上传用户*/
	private MiniProgramUser miniProgramUser;
	
	public String getFileName() {
		return fileName;
	}
	public void setFileName(String fileName) {
		this.fileName = fileName;
	}
	public String getFilePath() {
		return filePath;
	}
	public void setFilePath(String filePath) {
		this.filePath = filePath;
	}
	public String getFileTime() {
		return fileTime;
	}
	public void setFileTime(String fileTime) {
		this.fileTime = fileTime;
	}
	public Date getUploadDate() {
		return uploadDate;
	}
	public void setUploadDate(Date uploadDate) {
		this.uploadDate = uploadDate;
	}
	public Boolean getIsRead() {
		return isRead;
	}
	public void setIsRead(Boolean isRead) {
		this.isRead = isRead;
	}
	public MiniProgramUser getMiniProgramUser() {
		return miniProgramUser;
	}
	public void setMiniProgramUser(MiniProgramUser miniProgramUser) {
		this.miniProgramUser = miniProgramUser;
	}
	
}

创建对应的配置文件(注意要修改SEQ_MiniProgramUser)

<?xml version="1.0" encoding="UTF-8"?>
<!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.vtradex.wms.server.model.record.Record" table="RECORD">
		<id name="id" column="ID" type="long">
			<generator class="native">
				<param name="sequence">SEQ_Record</param>
				<param name="parameters">START WITH 1</param>
			</generator>
		</id>
		<property name="fileName" type="string" column="FILE_NAME" length="15" />
		<property name="filePath" type="string" column="FILE_PATH" length="64" />
		<property name="fileTime" type="string" column="FILE_TIME" length="64" />
		<property name="uploadDate" type="timestamp" column="UPLOAD_DATE"/>
		<property name="isRead" type="boolean" column="IS_READ"/>
		<many-to-one name="miniProgramUser" class="com.vtradex.wms.server.model.record.MiniProgramUser">
			<column name="MINI_PROGRAM_USER_ID" not-null="false"/>
		</many-to-one>
		
		<component name="updateInfo" class="com.vtradex.thorn.server.model.UpdateInfo">
			<property name="creatorId" type="long" column="CREATOR_ID"/>
			<property name="creator" type="string" length="50" column="CREATOR"/>
			<property name="createdTime" type="timestamp" column="CREATED_TIME"/>
			<property name="lastOperatorId" type="long" column="LAST_OPERATOR_ID"/>
			<property name="lastOperator" type="string" length="50" column="LAST_OPERATOR"/>
			<property name="updateTime" type="timestamp" column="UPDATE_TIME"/>
		</component>
	</class>
</hibernate-mapping>

猜你喜欢

转载自blog.csdn.net/qq_40053398/article/details/88987763