`

Hibernate注解映射联合主键

 
阅读更多
引用

Hibernate注解映射联合主键的三种主要方式 (2012-05-31 22:02:17)转载▼
标签: hibernate 注解 联合主键映射 分类: SSH
联合主键用Hibernate注解映射方式主要有三种:
第一、将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主键类中的字段)保存该联合主键类的一个引用,并生成set和get方法,并将该引用注解为@Id
第二、将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,最后在主类中(该类不包含联合主键类中的字段)保存该联合主键类的一个引用,并生成set和get方法,并将该引用注解为@EmbeddedId
第三、将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并要重写equals和hashcode.最后在主类中(该类包含联合主键类中的字段)将联合主键字段都注解为@Id,并在该类上方将上这样的注解:@IdClass(联合主键类.class)


实际代码
public class BmRoRolerightmatrixPK implements Serializable{
	
	private static final long serialVersionUID = 1L;
	
	private Long actId;//功能操作ID
	private Long roleId;//角色ID
	
	@Column(name = "ACT_ID",unique = false,nullable = true,length = 10)
	public Long getActId() {
		return actId;
	}
	public void setActId(Long actId) {
		this.actId = actId;
	}
	
	@Column(name = "ROLE_ID",unique = false,nullable = true,length = 10)
	public Long getRoleId() {
		return roleId;
	}
	public void setRoleId(Long roleId) {
		this.roleId = roleId;
	}
	
	
}


@Entity
@IdClass(BmRoRolerightmatrixPK.class)
@Table(name = "BM_RO_ROLERIGHTMATRIX")
public class BmRoRolerightmatrix implements Serializable{
	private static final long serialVersionUID = 1L;
	public BmRoRolerightmatrix(){}
	//属性
	private Long actId;//功能操作ID

	private Long roleId;//角色ID

	@Id
	public Long getActId() {
		return this.actId;
	}
	
	@Id
	public Long getRoleId() {
		return this.roleId;
	}
...
分享到:
评论

相关推荐

    Hibernate联合主键的例子

    在Hibernate中,我们可以使用`@Embeddable`和`@EmbeddedId`注解来定义和使用联合主键。 1. **创建联合主键类:** 在MyEclipse中,我们首先创建一个Java类来表示联合主键。这个类需要被标记为`@Embeddable`,并包含...

    Hibernate教程08_关系映射之联合主键

    在Hibernate中,实现联合主键可以通过使用`@Embeddable`和`@EmbeddedId`注解。首先,我们需要创建一个包含所有主键字段的类,并使用`@Embeddable`标记。这个类通常会作为其他实体类的属性,用`@EmbeddedId`注解。...

    hibernate复合主键配置和使用

    在XML配置时代,我们需要在Hibernate的映射文件(.hbm.xml)中显式声明复合主键。现在,大多数项目都使用注解配置,但如果你仍然需要处理旧的项目,这里是如何配置的示例: ```xml <hibernate-mapping> ...

    hibernate的多种映射关系

    Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,消除了直接编写 SQL 的需要。在 Hibernate 中,映射关系是将数据库表与 Java 类之间的关联方式,使得对象模型可以与关系...

    hibernate复合主键映射

    总结来说,Hibernate复合主键映射是处理多字段主键的关键技术,它通过`@Embeddable`和`@EmbeddedId`注解以及相应的XML配置,使开发者能够方便地管理和操作具有复合主键的实体。在开发过程中,正确理解和使用这项功能...

    Hibernate一对一单向外键关联 (联合主键annotation)

    本篇将详细讲解如何使用Hibernate进行一对一单向外键关联,并且该关联涉及到联合主键的注解配置。 首先,一对一关联可以分为两种类型:单向和双向。在单向一对一关联中,只有一个实体知道另一个实体的存在,而另一...

    hibernate复合主键的实例

    在某些情况下,单一字段无法唯一标识表中的记录,此时需要多个字段联合起来作为主键。例如,考虑一个学生选课表,可能包含"学生ID"和"课程ID",这两者结合才能唯一确定学生选修的特定课程。 三、Hibernate中复合...

    Hibernate注解jar包

    Hibernate是Java领域中一款广泛应用的...总的来说,Hibernate注解让Java开发者能够更直观地将对象模型映射到数据库,提高了开发效率,降低了出错概率。理解并熟练运用这些注解,是提升Java企业级开发能力的重要一步。

    hibernate注解详解说明

    Hibernate 提供了多种继承映射策略,如 `@Inheritance(strategy=InheritanceType.SINGLE_TABLE)`、`@DiscriminatorColumn` 和 `@DiscriminatorValue`,以支持单表继承、子类表和联合主键等。 #### 映射关联关系 - ...

    用Hibernate映射继承关系

    在映射这些继承关系时,我们需要在Hibernate的配置文件或注解中指定继承策略。例如,使用XML配置,我们可以在`<class>`标签下添加`<inheritance>`子标签,指定`strategy`属性为相应的继承策略。如果是使用注解,我们...

    Hibernate_关联关系映射配置

    五、联合主键(Composite Key) 在某些情况下,实体的主键可能由两个或更多个字段组成。这时,我们需要使用`@EmbeddedId`和`@Embeddable`注解来定义复合主键类和其属性。`@EmbeddedId`用于指定实体的主键类,而`@...

    Hibernate 的关联映射

    在Hibernate中,使用`@ManyToMany`注解,并创建一个中间表(通常是联合主键)来存储关联。`@JoinTable`注解用于定义中间表的详细信息。 关联映射时的注意事项: - 使用外键:Hibernate支持实体间的外键关联,但也...

    Hibernate继承映射一:每个类分层结构一张表

    Hibernate提供了四种主要的继承映射策略:单表策略、每个类分层结构一张表、表集策略以及联合主键策略。本文主要关注的是“每个类分层结构一张表”。 在“每个类分层结构一张表”策略中,每种具体类(Concrete ...

    hibernate关联关系映射

    这种关系可以通过外键或者联合主键来建立。例如,一个用户可能只有一个唯一的身份证信息,这时可以创建两个类,User和IdCard,通过`@OneToOne`进行关联。 二、一对多关系映射(One-to-Many) 在一个实体中,如果一...

    Hibernate映射

    6. **继承映射**:Hibernate支持单表继承、联合继承和表格 per 类型的继承策略,使对象模型的继承结构能够反映到数据库中。 7. **集合映射**:Hibernate允许将Java集合类型(如List、Set、Map)映射为数据库的表,...

    Hibernate注解

    * @GenericGenerator —— 注解声明了一个hibernate的主键生成策略。支持十三种策略。该注解有如下属性 * name 指定生成器名称 * strategy 指定具体生成器的类名(指定生成策略)。 * parameters 得到strategy指定的...

    Hibernate注解方式、HQL查询

    一、Hibernate注解方式 1. **实体类注解**:在Hibernate中,我们可以使用注解来定义一个Java类为数据库中的表。例如,使用`@Entity`标记一个类为实体,`@Table`指定对应的数据库表名,`@Id`定义主键,`@...

    hibernate注解中英文版

    Hibernate注解是元数据的一种形式,它们允许我们在Java类和属性上直接声明关于如何映射到数据库的信息,避免了XML配置文件的繁琐。通过注解,我们可以指定实体类、属性、关联关系等如何对应到数据库表和字段。 二、...

    Hibernate注释大全收藏

    Hibernate注释大全收藏 声明实体Bean @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId(Long id) { this.id = id; } } @Entity ...

Global site tag (gtag.js) - Google Analytics