`
elite20130514
  • 浏览: 48302 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

基于XML的复合主键

阅读更多
<?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();
	}
	
}

 

 

分享到:
评论

相关推荐

    Hibernate中对数据库复合主键的支持.pdf

    在使用复合主键的情况下,通常会基于所有构成主键的属性来重写这些方法。 针对`Person`类的实现,我们可以参考以下示例代码: ```java import java.io.Serializable; public class Person implements ...

    hibernate3 注释生成复合主键或者嵌入式主键的方法及实例.doc

    总结来说,使用Hibernate3的注解,我们可以更加简洁地定义复合主键和嵌入式主键,避免了XML配置文件的繁琐。这种方法使得代码更易于理解和维护,尤其是在大型项目中,注解的使用能够提高开发效率并减少出错的可能性...

    行业-67 基于主键的索引是如何设计的,以及如何根据主键索引查询?l.rar

    一个表只能有一个主键,但主键可以由单个字段或多个字段组成,即复合主键。 二、主键索引的设计 1. 数据结构选择:主键索引通常采用B树(B-Tree)或其变种B+树(B+Tree)作为底层数据结构。B+树的特性使得查找、...

    ssh多主键插入

    在IT领域的数据库设计与操作中,处理具有多主键(复合主键)的表是一项常见但又复杂的任务。本文将围绕“ssh多主键插入”这一主题,深入探讨如何在Struts、Spring和Hibernate(SSH框架)中实现对具有多主键结构的...

    利用hibernate自动生成hbm.xml文件和entity类.doc

    * Id.java 文件:如果表中存在复合主键或没有主键,则将生成该文件。 四、 将生成文件整合到项目中 1. 将生成文件放在项目对应路径中:将生成的文件放在项目对应的路径中,以便于使用。 2. 修改 hbm.xml 文件中的类...

    Hibernate关联映射

    虽然示例中的`equals()`和`hashCode()`方法也未完成,但在实际编程中,这两个方法应基于`firstName`和`lastName`的值进行比较,以确保复合主键对象的相等性判断正确。 总结来说,Hibernate的复合主键映射允许我们将...

    Hibernate入门(代码+笔记)

    总结来说,本教程涵盖了Hibernate的基础知识,从入门到实体映射,再到复合主键和实体层设计,旨在帮助初学者快速掌握Hibernate的使用,从而更高效地进行数据库操作。通过实践这些知识点,你将能够熟练地在Java应用中...

    Java EE实用教程:基于WebLogic和Eclipse(第二版)PPT

    这一章可能深入讨论了高级JPA特性,如多表继承、复合主键、查询优化和实体监听器。 5. **第28章 - 使用JPA完成查询**: 这一章详细讲解了如何利用JPA进行数据查询,包括JPQL(Java Persistence Query Language)和...

    struts\Hibernate 学习总结.doc

    直接映射是在hbm.xml文件中直接定义各个属性,间接映射则是通过一个专门的类来表示复合主键,然后在实体类中引用该类。 5. Hibernate的映射配置:包括实体类与表的映射、属性与列的映射、关联关系的映射(一对一、...

    EJB3-SourceCode

    2. **复合主键** - `CompositePK`可能是一个实体类,用于表示由多个字段组成的复合主键。EJB3.0支持注解定义复合主键,使得处理多字段主键变得简单。 3. **定时服务** - `TimerService`是EJB3.0的一项功能,允许在...

    基于Weblogic 的ejb 学习笔记

    - 支持单字段主键和复合主键。 - **Bean类和Bean上下文环境**: - `Bean Class`实现`javax.ejb.EntityBean`接口。 - `setEntityContext()`方法在构造函数执行后调用,用于初始化Bean的上下文环境。 - **持久化...

    如何给一个表建立一个web 服务

    - 在`SSczb.hbm.xml`中,移除`&lt;composite-id&gt;`标签,因为它表示复合主键,而你的表没有主键。然后,为每个属性添加`&lt;id&gt;`标签,例如: ```xml ``` - 其他属性的`key-property`标签应改为`property`。 4...

    hibernate 中文参考手册

    - **复合主键概念**:解释复合主键的概念。 - **映射配置**:讲解如何在映射文件中配置复合主键。 - **示例代码**:给出具体的复合主键配置示例。 以上内容基于提供的文档摘要进行了详细展开,旨在帮助读者深入了解...

    JPA 批注参考

    - **@EmbeddedId**: 用于标记嵌入式复合主键。 - **@GeneratedValue**: 用于指定主键生成策略。 - **@SequenceGenerator**: 用于定义序列生成器。 - **@TableGenerator**: 用于定义基于表的主键生成器。 **4. 直接...

    hibernate经典源码

    10. **联合主键与复合主键**:在处理多字段主键时,需要理解如何在实体类和映射文件中配置联合主键或复合主键。 11. **实体继承策略**:Hibernate支持单表继承、联合继承和表-per-hierarchy等多种继承策略,根据...

    hibernate _annotation 注解编程

    - **复合主键映射**:使用 `@EmbeddedId` 或 `@IdClass` 来映射复合主键。 - **次级表映射**:使用 `@SecondaryTable` 注解来映射实体与次级表的关系。 - **实体缓存**:使用 `@Cacheable` 和 `@Cache(usage = ...

    Hiberate Annotation学习笔记

    - 当实体类的主键由多个属性组成时,可以使用 `@EmbeddedId` 注解配合一个嵌入式 ID 类来定义复合主键。 7. **关系映射** - Hibernate 注解还支持各种关系映射,如 `@OneToOne`, `@ManyToOne`, `@OneToMany`, `@...

    hibernate教程

    - 复合主键可以通过`@EmbeddedId`和自定义的复合主键类来实现。 - **映射二级表**: - 使用`@SecondaryTables`和`@SecondaryTable`来指定额外的表。 #### 四、Hibernate独有的注解扩展 Hibernate除了支持标准的...

Global site tag (gtag.js) - Google Analytics