Hibernate Annotations -> 2.2.6. Mapping composite primary keys and foreign keys to composite primary keys:
http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e2177引用
Composite primary keys use a embedded class as the primary key representation, so you'd use the @Id and @Embeddable annotations. Alternatively, you can use the @EmbeddedId annotation. Note that the dependent class has to be serializable and implements equals()/hashCode(). You can also use @IdClass.@Entity
public class RegionalArticle implements Serializable {
@Id
public RegionalArticlePk getPk() { ... }
}
@Embeddable
public class RegionalArticlePk implements Serializable { ... }
or alternatively
@Entity
public class RegionalArticle implements Serializable {
@EmbeddedId
public RegionalArticlePk getPk() { ... }
}
public class RegionalArticlePk implements Serializable { ... }
与这段摘录呼应的一篇文章:
http://blog.csdn.net/zzh87615/article/details/6083754引用
hibernate的annotation的文档中提供了三种方法
1 将组件类注解为@Embeddable,并将组件的属性注解为@Id
2 将组件的属性注解为@EmbeddedId (方便)
3 将类注解为@IdClass,并将该实体中所有属于主键的属性都注解为@Id(符合编程习惯)
主键类需要序列化(考虑到可能会将数据读写到虚拟内存中),需要重写hashcode()和equals()方法,因为要对联合主键进行比较.
Hibernate Annotation 联合主键三种写法的例子:
http://laodaobazi.iteye.com/blog/903236
Which anotation should I use: @IdClass or @EmbeddedId:
http://stackoverflow.com/questions/212350/which-anotation-should-i-use-idclass-or-embeddedid
Compound Primary Keys with Hibernate and JPA Annotations:
http://jpa.ezhibernate.com/Javacode/learn.jsp?tutorial=15usingcompoundprimarykeys
@IdClass and @EmbeddedId:
http://www.coderanch.com/t/452567/ORM/java/IdClass-EmbeddedId
遇到的一个bug:使用IdClass,居然不认@Column:
https://hibernate.onjira.com//browse/HHH-4256
分享到:
相关推荐
同时,需要在主类上添加`@IdClass`注解,指定联合主键的类。这种方式要求主类包含联合主键类中的所有字段,且每个字段都需要对应联合主键类中的相应字段。联合主键类同样需要实现`Serializable`接口并重写`equals()`...
本文将详细介绍如何使用Hibernate注解来定义联合主键。 首先,我们需要了解联合主键的定义方式。在Hibernate API中,有三种方法来定义联合主键: 1. 使用`@Embeddable`注解定义一个独立的主键类,然后将这个类的...
`@Id`注解标识类中的一个字段作为主键,对应数据库表的主键字段: ```java @Entity public class User { @Id private Long id; // ... } ``` 4. **生成主键策略注解(@GeneratedValue)** 对于自增主键,...
在Hibernate中,我们可以使用`@Embeddable`和`@EmbeddedId`注解来定义和使用联合主键。 1. **创建联合主键类:** 在MyEclipse中,我们首先创建一个Java类来表示联合主键。这个类需要被标记为`@Embeddable`,并包含...
- **映射复合主键与外键:** 复合主键通过`@IdClass`或`@EmbeddedId`注解实现。 - **映射二级表(secondary tables):** 使用`@SecondaryTables`注解来映射多个表。 #### 四、映射查询 - **映射EJBQL/HQL查询:** ...
### Hibernate注解学习笔记 #### 一、简介与概述 Hibernate是Java领域内最流行的ORM(Object Relational Mapping)框架之一,它通过提供强大的映射工具和服务,将面向对象的数据模型(即Java类)与传统的关系型...
总结,复合主键在Hibernate中是通过`@Embeddable`和`@EmbeddedId`注解来实现的,它允许我们在多字段的唯一标识场景下有效地管理数据。通过理解和正确配置复合主键,能够使我们的数据模型更符合实际业务需求,提高...
在Hibernate中,我们可以通过`@Embeddable`和`@EmbeddedId`注解来实现复合主键的配置。 1. 创建复合主键类 首先,我们需要创建一个表示复合主键的类,该类需要被`@Embeddable`注解标记。例如,假设我们有用户地址...
联合主键注解 (@EmbeddedId)** 对于复合主键,可以使用@EmbeddedId注解配合一个嵌入式类来表示。例如: ```java @Embeddable public class OrderId { private String orderId; private int customerId; } @...
在Hibernate中,无主键表映射通常通过`@Embeddable`和`@EmbeddedId`注解来实现。`@Embeddable`注解用于定义一个包含复合主键字段的类,而`@EmbeddedId`注解则用在实体类上,指定这个复合主键类。 以下是一个简单的...
在Hibernate中,我们可以使用`@IdClass`或`@EmbeddedId`注解来处理复合主键。 1. 使用@IdClass `@IdClass`注解用于指定一个单独的类作为复合主键的载体。这个类通常包含与复合主键相关的属性,并且需要实现`java....
如果需要复合主键,可以使用`@IdClass`或`@EmbeddedId`。 四、字段映射(Columns) 字段与数据库列的映射通过`@Column`注解实现,如指定列名、长度、是否可为空等: ```java @Entity public class User { @Id ...
在Hibernate中,实现联合主键可以通过使用`@Embeddable`和`@EmbeddedId`注解。首先,我们需要创建一个包含所有主键字段的类,并使用`@Embeddable`标记。这个类通常会作为其他实体类的属性,用`@EmbeddedId`注解。...
本篇将详细讲解如何使用Hibernate进行一对一单向外键关联,并且该关联涉及到联合主键的注解配置。 首先,一对一关联可以分为两种类型:单向和双向。在单向一对一关联中,只有一个实体知道另一个实体的存在,而另一...
在Hibernate中,我们可以通过实现`Serializable`接口并使用`@Embeddable`和`@EmbeddedId`注解来定义和管理复合主键。 首先,我们需要创建一个代表复合主键的类。例如,对于订单明细表,我们可以创建一个名为`...
- **复合主键映射**:使用 `@EmbeddedId` 或 `@IdClass` 来映射复合主键。 - **次级表映射**:使用 `@SecondaryTable` 注解来映射实体与次级表的关系。 - **实体缓存**:使用 `@Cacheable` 和 `@Cache(usage = ...
@IdClass(CompositeKey.class) public class EntityWithCompositeKey { @Id private Long id1; @Id private Long id2; ... } ``` - **3.2.7 映射次级表** 多个表映射到单个实体上。 ```java @Entity ...
本文档主要介绍了使用Hibernate进行注解式开发的方法,并且针对Hibernate的基本使用及其配置进行了详尽的解释。Hibernate作为一个流行的Java持久层框架,提供了对象关系映射(ORM)的功能,使得Java应用程序能够更加...
这篇文档将介绍如何使用Hibernate注解来生成复合主键或嵌入式主键。 复合主键(Composite Key)是指由两个或更多个列共同构成的唯一标识,而嵌入式主键(Embedded Key)则是将主键字段嵌入到实体类内部。在不使用...