`
xiaoming123123
  • 浏览: 98820 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

hibernate 一对一 注解配置

    博客分类:
  • SSH
阅读更多
一个电视台(Station)有一个频道(Channel),并且电视台(Station)是主表,频道(Channel)是从表,主表拥有从表的外键
主表配置如下:
package cn.nagasoft.cms.entities.po;

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

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

/**
 * @author chenmingming
 * @date 2012-8-6
 * @version 1.0
 */
@Entity
@Table(name = "station")
public class Station extends AuditEntity {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name = "STATION_ID")
	@GeneratedValue(strategy = GenerationType.AUTO)
	private int stationId;

	@Column(name = "STATION_NAME", length = 40)
	private String stationName;

	@Column(name = "STATION_LOGO", length = 50)
	private String stationLogo;

	@Column(name = "STATION_COMMENT", length = 500)
	private String stationComment;

	@Column(name = "STATION_TYPE")
	private int stationType;

	@Column(name = "STATION_HIT")
	private int stationHit;

	@Column(name = "STATION_NEEDHIT1")
	private int stationNeedhit1;

	@Column(name = "STATION_NEEDHIT2")
	private int stationNeedhit2;

	@OneToOne(fetch=FetchType.EAGER,optional=true)
	@JoinColumn(name="CHANNEL_ID",insertable=true,unique=true)
	private Channel channel;

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "playStation", cascade = CascadeType.ALL, orphanRemoval = true)
	private Set<PlayList> playLists = new HashSet<PlayList>();

	@ManyToOne(fetch = FetchType.EAGER, optional = true, cascade = CascadeType.MERGE)
	@JoinColumn(name = "SCHOOL_ID")
	private School school;

	/**
	 * 获取电视台ID
	 * 
	 * @return
	 */
	public int getStationId() {
		return stationId;
	}

	/**
	 * 设置电视台ID
	 * 
	 * @param stationId
	 */
	public void setStationId(int stationId) {
		this.stationId = stationId;
	}

	/**
	 * 获取电视台名称
	 * 
	 * @return
	 */
	public String getStationName() {
		return stationName;
	}

	/**
	 * 设置电视台名称
	 * 
	 * @param stationName
	 */
	public void setStationName(String stationName) {
		this.stationName = stationName;
	}

	/**
	 * 获取电视台logo
	 * 
	 * @return
	 */
	public String getStationLogo() {
		return stationLogo;
	}

	/**
	 * 设置电视台logo
	 * 
	 * @param stationLogo
	 */
	public void setStationLogo(String stationLogo) {
		this.stationLogo = stationLogo;
	}

	/**
	 * 获取电视台简介
	 * 
	 * @return
	 */
	public String getStationComment() {
		return stationComment;
	}

	/**
	 * 设置电视台简介
	 * 
	 * @param stationComment
	 */
	public void setStationComment(String stationComment) {
		this.stationComment = stationComment;
	}

	/**
	 * 获取电视台标志(类型)
	 * 
	 * @return
	 */
	public int getStationType() {
		return stationType;
	}

	/**
	 * 设置电视台标志(类型)
	 * 
	 * @param stationType
	 */
	public void setStationType(int stationType) {
		this.stationType = stationType;
	}

	/**
	 * 获取电视台点击率
	 * 
	 * @return
	 */
	public int getStationHit() {
		return stationHit;
	}

	/**
	 * 设置电视台点击率
	 * 
	 * @param stationHit
	 */
	public void setStationHit(int stationHit) {
		this.stationHit = stationHit;
	}

	/**
	 * 获取扩展点击率1
	 * 
	 * @return
	 */
	public int getStationNeedhit1() {
		return stationNeedhit1;
	}

	/**
	 * 设置扩展点击率1
	 * 
	 * @param stationNeedhit1
	 */
	public void setStationNeedhit1(int stationNeedhit1) {
		this.stationNeedhit1 = stationNeedhit1;
	}

	/**
	 * 获取扩展点击率2
	 * 
	 * @return
	 */
	public int getStationNeedhit2() {
		return stationNeedhit2;
	}

	/**
	 * 设置扩展点击率2
	 * 
	 * @param stationNeedhit2
	 */
	public void setStationNeedhit2(int stationNeedhit2) {
		this.stationNeedhit2 = stationNeedhit2;
	}

	/**
	 * 获取频道所有信息
	 * 
	 * @return
	 */
	public Channel getChannel() {
		return channel;
	}

	/**
	 * 设置频道所有信息
	 * 
	 * @param channels
	 */
	public void setChannel(Channel channel) {
		this.channel = channel;
	}

	/**
	 * 获取学校所有信息
	 * 
	 * @return
	 */
	public School getSchool() {
		return school;
	}

	/**
	 * 设置学校所有信息
	 * 
	 * @param schools
	 */
	public void setSchool(School school) {
		this.school = school;
	}

	/**
	 * 获取节目的集合
	 * 
	 * @return the playLists
	 */
	public Set<PlayList> getPlayLists() {
		return playLists;
	}

	/**
	 * 设置节目的集合
	 * 
	 * @param playLists
	 *            the playLists to set
	 */
	public void setPlayLists(Set<PlayList> playLists) {
		this.playLists = playLists;
	}

}


从表配置如下:
package cn.nagasoft.cms.entities.po;

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

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

/**
 * @author wangxingzong
 * @date 2012-8-3
 * @version 1.0
 */
@Entity
@Table(name = "channel")
public class Channel extends AuditEntity {

	/**
	 * 
	 */
	private static final long serialVersionUID = -9010605838714842142L;

	@Id
	@Column(name = "CHANNEL_ID")
	@GeneratedValue(strategy = GenerationType.AUTO)
	private int channelId;

	@Column(name = "CHANNEL_NAME", length = 30)
	private String channelName;

	@Column(name = "SOURCE_CHANNEL")
	private int sourceChannelId;

	@Column(name = "CHANNEL_STREAM", length = 30)
	private String channelStream;

	@Column(name = "CHANNEL_STATE")
	private int channelState;

	@Column(name = "VERSION")
	private int version;

	@ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.EAGER)
	@JoinColumn(name = "SERVER_ID")
	private Server channelServer;

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "channel")
	private Set<Record> record = new HashSet<Record>();

	@OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.EAGER, optional = true, mappedBy = "channel")
	private Station station;

	/**
	 * 获取直播频道 ID
	 */
	public int getChannelId() {
		return channelId;
	}

	/**
	 * 设置直播频道 ID
	 */
	public void setChannelId(int channelId) {
		this.channelId = channelId;
	}

	/**
	 * 获取直播频道名称
	 */
	public String getChannelName() {
		return channelName;
	}

	/**
	 * 设置直播频道名称
	 */
	public void setChannelName(String channelName) {
		this.channelName = channelName;
	}

	/**
	 * 获取播服务器
	 */
	public Server getChannelServer() {
		return channelServer;
	}

	/**
	 * 设置播服务器
	 */
	public void setChannelServer(Server channelServer) {
		this.channelServer = channelServer;
	}

	/**
	 * 获取直播频道流
	 */
	public String getChannelStream() {
		return channelStream;
	}

	/**
	 * 设置直播频道流
	 */

	public void setChannelStream(String channelStream) {
		this.channelStream = channelStream;
	}

	/**
	 * 获取直播频道状态
	 */
	public int getChannelState() {
		return channelState;
	}

	/**
	 * 设置直播频道状态
	 */
	public void setChannelState(int channelState) {
		this.channelState = channelState;
	}

	/**
	 * 获取源频道的频道ID
	 * 
	 * @return the channelSourceId
	 */
	public int getSourceChannelId() {
		return sourceChannelId;
	}

	/**
	 * 设置源频道的频道ID
	 * 
	 * @param channelSourceId
	 *            the channelSourceId to set
	 */
	public void setSourceChannelId(int sourceChannelId) {
		this.sourceChannelId = sourceChannelId;
	}

	/**
	 * 获取电视台信息
	 * 
	 * @return the station
	 */
	public Station getStation() {
		return station;
	}

	/**
	 * 设置电视台信息
	 * 
	 * @param station
	 *            the station to set
	 */
	public void setStation(Station station) {
		this.station = station;
	}

	/**
	 * 获取录制集合
	 * 
	 * @return
	 */
	public Set<Record> getRecord() {
		return record;
	}

	/**
	 * 设置录制集合
	 * 
	 * @param record
	 */
	public void setRecord(Set<Record> record) {
		this.record = record;
	}

	/**
	 * 获得课件版本
	 * 
	 * @return the version
	 */
	public int getVersion() {
		return version;
	}

	/**
	 * 设置课件版本
	 * 
	 * @param version
	 *            the version to set
	 */
	public void setVersion(int version) {
		this.version = version;
	}
}
分享到:
评论

相关推荐

    Hibernate双向一对一关联映射(注解版)

    Hibernate双向一对一关联映射(注解版)

    Hibernate一对多关联映射(注解)

    NULL 博文链接:https://profound-accumulation.iteye.com/blog/2243079

    hibernate映射的注解配置

    使用hibernate的注解配置可以很好的完成跟实体的映射。而且还可以通过注解配置,可以完成多对一,一对多等关系的配置,非常好。

    Hibernate1对多1对1多对多关联映射例子源码含注解配置

    在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用...

    Hibernate注解

    * @OneToMany 设置一对多关联。cascade属性指定关联级别,参考@OneToOne中的说明。fetch指定是否延迟加载,值为FetchType.LAZY表示延迟,为FetchType.EAGER表示立即加载 * 方法一 使用这种配置,在为“一端”添加“多...

    hibernate+spring+springmvc框架 @注解开发 详细配置注释/及hibernate的HQL/QBC/SQL查询代码使用及注释

    于是我花了几天时间搭建出来的hibernate+springmvc的框架,这个框架去除hibernate配置, 将配置全部整合到spring中,开发中使用注解开发即可,很方便,以后我还会持续更新的。 这是一个maven项目,放在eclipse中,改...

    Hibernate学习笔记和资料

    hibernate中一对一,一对多,多对多关系的配置,延迟加载,cascade,inverse hibernate查询方式概述,HQL查询,QBC查询,分页,结果集封装方式 ,高级查询 查询的优化,一级缓存,二级缓存,批量查询,注解方式

    ssh全注解项目(一对一,一对多,多对多)

    ssh全注解项目(一对一,一对多,多对多),hibernate的注解配置及映射关系

    hibernate注解式代码应用

    重点包括一对一,一对多及多对多关系的配置代码实例。 myeclipse项目工程导入即可运行(需要自行导入hibernat4.1.4包依赖(myeclipse中自带此包))。每个实例均附说明及mysql的库表sql。另,如果要测试代码中的hbm2...

    Hibernate4注解全教程

    传统上,Hibernate的配置依赖于外部 *.hbm.xml文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载。 借助新的 Hibernate Annotation 库,即可一次性地分配所有旧映射文件——一切都会按照您的想法来...

    Hibernate1对多1对1多对多关联映射例子源码含xml配置

    在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,这个是xml配置的例子

    hibernate 体系结构与配置 参考文档(html)

    一对一(one to one) 7.5. 使用连接表的双向关联(Bidirectional associations with join tables) 7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many ...

    Hibernate Annotations 中文文档

    一对一(One-to-one) 2.2.5.2. 多对一(Many-to-one) 2.2.5.3. 集合类型 2.2.5.4. 用cascading实现传播性持久化(Transitive persistence) 2.2.5.5. 关联关系获取 2.2.6. 映射复合主键与外键 2.2.7. 映射二级表...

    Hibernate+中文文档

    7.4.2. 一对一(one to one) 7.5. 使用连接表的双向关联(Bidirectional associations with join tables) 7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多...

    SpringMVC+Hibernate 的一个增删改例子

    本例子使用 SpringMVC + Hibernate框架整合,实现了对学生表数据的增、删、改功能, 全部基于注解配置, 省去了繁琐的 bean 手工配置和hibernate 映射关系配置。

    hibernate4.3.8的annotation及xml的一对多的双向案例

    一个完成了hibernate的注解和配置的简单案例;这是一个一对多【多对一】的案例,其实一对多的案例就可以解决项目中的大部分需求。因为多对多可以一般我们转化为两个多对一的案例;

    HibernateAPI中文版.chm

    7.2.2. 一对一(one to one) 7.2.3. 一对多(one to many) 7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. ...

    hibernate3.2中文文档(chm格式)

    7.2.2. 一对一(one to one) 7.2.3. 一对多(one to many) 7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. ...

    hibernate annotation 中文文档

    一对一(One-to-one) 2.2.5.2. 多对一(Many-to-one) 2.2.5.3. 集合类型 2.2.5.4. 用cascading实现传播性持久化(Transitive persistence) 2.2.5.5. 关联关系获取 2.2.6. 映射复合主键与外键 2.2.7. 映射二级表...

    Hibernate中文详细学习文档

    7.4.2. 一对一(one to one) 7.5. 使用连接表的双向关联(Bidirectional associations with join tables) 7.5.1. 一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多...

Global site tag (gtag.js) - Google Analytics