<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.hibernate.demo.po"> <class name="Teacher" table="teacher"> <composite-id name="pk" class="TeacherPK"> <key-property name="id" type="string"/> <key-property name="name" type="string"/> </composite-id> </class> </hibernate-mapping>
TeacherPK.java
package com.hibernate.demo.po; import java.io.Serializable; public class TeacherPK implements Serializable { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public boolean equals(Object obj) { TeacherPK pk = (TeacherPK)obj; if(this.id==pk.getId() && this.name.equals(pk.getName())){ return true; }else{ return false; } } @Override public int hashCode() { return this.name.hashCode(); } }
相关推荐
在使用复合主键的情况下,通常会基于所有构成主键的属性来重写这些方法。 针对`Person`类的实现,我们可以参考以下示例代码: ```java import java.io.Serializable; public class Person implements ...
总结来说,使用Hibernate3的注解,我们可以更加简洁地定义复合主键和嵌入式主键,避免了XML配置文件的繁琐。这种方法使得代码更易于理解和维护,尤其是在大型项目中,注解的使用能够提高开发效率并减少出错的可能性...
一个表只能有一个主键,但主键可以由单个字段或多个字段组成,即复合主键。 二、主键索引的设计 1. 数据结构选择:主键索引通常采用B树(B-Tree)或其变种B+树(B+Tree)作为底层数据结构。B+树的特性使得查找、...
在IT领域的数据库设计与操作中,处理具有多主键(复合主键)的表是一项常见但又复杂的任务。本文将围绕“ssh多主键插入”这一主题,深入探讨如何在Struts、Spring和Hibernate(SSH框架)中实现对具有多主键结构的...
* Id.java 文件:如果表中存在复合主键或没有主键,则将生成该文件。 四、 将生成文件整合到项目中 1. 将生成文件放在项目对应路径中:将生成的文件放在项目对应的路径中,以便于使用。 2. 修改 hbm.xml 文件中的类...
虽然示例中的`equals()`和`hashCode()`方法也未完成,但在实际编程中,这两个方法应基于`firstName`和`lastName`的值进行比较,以确保复合主键对象的相等性判断正确。 总结来说,Hibernate的复合主键映射允许我们将...
总结来说,本教程涵盖了Hibernate的基础知识,从入门到实体映射,再到复合主键和实体层设计,旨在帮助初学者快速掌握Hibernate的使用,从而更高效地进行数据库操作。通过实践这些知识点,你将能够熟练地在Java应用中...
这一章可能深入讨论了高级JPA特性,如多表继承、复合主键、查询优化和实体监听器。 5. **第28章 - 使用JPA完成查询**: 这一章详细讲解了如何利用JPA进行数据查询,包括JPQL(Java Persistence Query Language)和...
直接映射是在hbm.xml文件中直接定义各个属性,间接映射则是通过一个专门的类来表示复合主键,然后在实体类中引用该类。 5. Hibernate的映射配置:包括实体类与表的映射、属性与列的映射、关联关系的映射(一对一、...
2. **复合主键** - `CompositePK`可能是一个实体类,用于表示由多个字段组成的复合主键。EJB3.0支持注解定义复合主键,使得处理多字段主键变得简单。 3. **定时服务** - `TimerService`是EJB3.0的一项功能,允许在...
- 支持单字段主键和复合主键。 - **Bean类和Bean上下文环境**: - `Bean Class`实现`javax.ejb.EntityBean`接口。 - `setEntityContext()`方法在构造函数执行后调用,用于初始化Bean的上下文环境。 - **持久化...
- 在`SSczb.hbm.xml`中,移除`<composite-id>`标签,因为它表示复合主键,而你的表没有主键。然后,为每个属性添加`<id>`标签,例如: ```xml ``` - 其他属性的`key-property`标签应改为`property`。 4...
- **复合主键概念**:解释复合主键的概念。 - **映射配置**:讲解如何在映射文件中配置复合主键。 - **示例代码**:给出具体的复合主键配置示例。 以上内容基于提供的文档摘要进行了详细展开,旨在帮助读者深入了解...
- **@EmbeddedId**: 用于标记嵌入式复合主键。 - **@GeneratedValue**: 用于指定主键生成策略。 - **@SequenceGenerator**: 用于定义序列生成器。 - **@TableGenerator**: 用于定义基于表的主键生成器。 **4. 直接...
10. **联合主键与复合主键**:在处理多字段主键时,需要理解如何在实体类和映射文件中配置联合主键或复合主键。 11. **实体继承策略**:Hibernate支持单表继承、联合继承和表-per-hierarchy等多种继承策略,根据...
- **复合主键映射**:使用 `@EmbeddedId` 或 `@IdClass` 来映射复合主键。 - **次级表映射**:使用 `@SecondaryTable` 注解来映射实体与次级表的关系。 - **实体缓存**:使用 `@Cacheable` 和 `@Cache(usage = ...
- 当实体类的主键由多个属性组成时,可以使用 `@EmbeddedId` 注解配合一个嵌入式 ID 类来定义复合主键。 7. **关系映射** - Hibernate 注解还支持各种关系映射,如 `@OneToOne`, `@ManyToOne`, `@OneToMany`, `@...
- 复合主键可以通过`@EmbeddedId`和自定义的复合主键类来实现。 - **映射二级表**: - 使用`@SecondaryTables`和`@SecondaryTable`来指定额外的表。 #### 四、Hibernate独有的注解扩展 Hibernate除了支持标准的...