public class A{
private A.id id;
private String bar;
public static class Id{
private String a;
private String b;
//重写eqauls和hashcode方法
//getter,setter
}
//getter,setter
}
映射文件:
<hibernate-mapping package="org.xx.yyy.zzzz">
<!--
Depends on Hibernate configuration with hibernate.hbm2ddl.auto=update.
-->
<class name="A" table="TA">
<composite-id name="id" class="XmlSchemaGrant$Id">
<key-property name="a" type="string">
<column name="a" />
</key-property>
<key-property name="b" type="string">
<column name="b" />
</key-property>
</composite-id>
<property name="bar" column="bar" type="text"
not-null="false" />
</class>
注意Java类中,Id类必须是静态类,否则会报No default constructor for entity的错误。
注意配置文件中,配置联合主键的class中间要用$符号。
关于静态内部类,其相当于写在Java文件中的普通类。可参考以下文字:
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.1.3
https://forum.hibernate.org/viewtopic.php?f=1&t=973414&view=previous
写道
Check out this section of the Java language spec that explains the difference between static and non-static inner classes:
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.1.3
A static inner class is conceptually no different than a regular general class declared in a .java file.
分享到:
相关推荐
2. **配置文件**:在Hibernate中,`hibernate.cfg.xml`是主要的配置文件,用于设定数据库连接信息、实体类映射、缓存策略等。通过解析这个文件,Hibernate能建立起与数据库的连接,并了解如何映射Java类到数据库表。...
6. Hibernate 的其他关键概念还包括缓存(一级缓存是 Session 内部缓存,二级缓存通过插件实现),Criteria 查询,HQL 的优点在于它的面向对象性质,以及 Criteria 和 Query API 提供的动态查询能力。事务管理通常...
2. 联合主键:处理多个字段作为主键的情况。 3. 批量操作:`session.saveOrUpdateAll()`、`session.deleteAll()`等。 4. 分页查询:使用`FirstResult`和`MaxResults`限制返回结果数量。 **九、最佳实践** 1. 避免...
2. **配置文件**:`hibernate.cfg.xml` 是 Hibernate3 的配置文件,用于设置数据库连接信息、实体类的映射等基础设置。 3. **实体类与映射文件**:每个数据库表通常对应一个Java实体类,通过`hibernate-mapping`...
- **XML配置文件**:介绍Hibernate配置文件的结构和用法。 #### 四、持久化类(Persistent Classes) - **POJO简单示例** - **为持久化字段声明访问器和是否可变的标志**:解释了如何通过getter和setter方法暴露实体...
9. **实体关系映射**:包括一对一、一对多、多对一、多对多等各种关系的映射,以及联合主键、外键约束等高级映射技巧。 10. **性能调优**:通过合理设置缓存策略、批处理、连接池等方式,可以显著提升Hibernate应用...
Hibernate 提供了 `@Entity`、`@Table`、`@Id` 等注解来声明实体、表映射和主键。 4. **映射机制(Mapping Mechanism)** - **Hibernate 映射文件(hbm.xml)**: 定义了 Java 类与数据库表之间的映射关系,包括...
1. Hibernate配置 Hibernate的配置通常通过`hibernate.cfg.xml`文件完成,其中包含了数据库连接信息、实体类扫描路径、方言设置等。例如,配置数据库URL、用户名和密码: ```xml <property name="hibernate....
组件映射允许将Java对象的字段或属性映射到数据库中的复合类型或联合主键。文档讲解了依赖对象、动态组件以及组件作为Map的索引或联合标识符的映射方法,提高了代码的可读性和维护性。 ### 继承映射 继承映射策略...
- **4.2 实现继承 (Inheritance)**:讲解如何在 Hibernate 中实现类的继承。 - **4.3 实现 equals() 和 hashCode() 方法**:解释为什么需要覆盖这些方法,并如何正确地实现它们。 - **4.4 动态模型 (Dynamic models)...
11. **多态性(Inheritance)**:Hibernate支持单表继承、联合继承和表分片等多种多态映射策略,使得面向对象的继承关系能够很好地映射到数据库。 12. **关联映射(Association Mapping)**:包括一对一(OneToOne...
- **联合主键**: 在实体类中通过`<id>`或`@Id`标注多个属性作为主键。 #### 七、Hibernate核心开发接口 - **Configuration/AnnotationConfiguration**: 负责读取和解析配置文件。 - **SessionFactory**: 创建`...
- **内置连接池**:当没有使用外部 DataSource 时,Hibernate 内部会创建一个连接池。 **3.5 可选配置属性** - **SQL 方言**:选择适合数据库系统的 SQL 方言。 - **外连接抓取**:控制是否使用外连接抓取机制提高...
- **Hibernate配置文件(hibernate.cfg.xml)**:定义数据库连接信息、缓存策略、方言等全局设置。 - **映射文件(.hbm.xml)**:为每个持久化类提供映射信息,描述如何将类与数据库表对应。 3. **对象关系映射**...
1. **Hibernate配置文件(hibernate.cfg.xml)**:包含了数据库连接信息、缓存策略、方言等配置,是Hibernate工作的基础。 2. **实体类映射文件(.hbm.xml)**:用于定义实体类与数据库表的映射关系,包括字段映射、...
4. 联合主键:多个字段共同组成主键,通过`@Embeddable`和`@EmbeddedId`注解实现。 5. 动态模型:无预先定义的实体类,直接通过HQL或Criteria API操作数据库。 七、源码分析 深入理解Hibernate,需要查看其源码,...
8. **Inheritance Mapping**: Hibernate支持单表继承、联合继承和表 per class hierarchy 等继承策略,使得复杂的继承结构能在数据库中得到合理映射。 9. **Listeners and Interceptors**: Hibernate允许注册监听器...
3. 映射文件:XML格式的映射文件(如.hbm.xml),也可以代替注解实现类与表的映射。 三、主键管理 1. 单列主键:通常使用@Id注解标识主键字段。 2. 复合主键:当表有多个字段共同构成主键时,可以使用@EmbeddedId和...
- **Hibernate配置文件(hibernate.cfg.xml)**:定义数据库连接、缓存策略、命名策略等全局设置。 - **映射文件(.hbm.xml)**:用于定义实体类和数据库表之间的映射关系,包括字段对应、主键生成策略等。 3. **...