`
weigang.gao
  • 浏览: 491037 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

联合主键 XML(3.1)

 
阅读更多

Student.java

package com.bjsxt.hibernate;

public class Student {
	//联合主键
	private StudentPK pk;
	
	private int age;
	private String sex;
	private boolean good;
	public boolean isGood() {
		return good;
	}
	public void setGood(boolean good) {
		this.good = good;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public StudentPK getPk() {
		return pk;
	}
	public void setPk(StudentPK pk) {
		this.pk = pk;
	}	
}

  

联合主键 StudentPK.java,注意要实现hashCode,equals方法

package com.bjsxt.hibernate;
/**/
public class StudentPK implements java.io.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 o) {
		if(o instanceof StudentPK) {
			StudentPK pk = (StudentPK)o;
			if(this.id == pk.getId() && this.name.equals(pk.getName())) {
				return true;
			}
		}
		return false;
	}
	
	@Override
	public int hashCode() {
		return this.name.hashCode();
	}
}

 

student.hbm.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>
	<class name="com.bjsxt.hibernate.Student">
		
		<composite-id name="pk" class="com.bjsxt.hibernate.StudentPK">
                        <!--使用id和name作为主键-->
			<key-property name="id"></key-property> 
			<key-property name="name"></key-property>
		</composite-id>
		
		<property name="age" />
		<property name="sex" />
		<property name="good" type="yes_no"></property>
    </class>
	
</hibernate-mapping>

 

分享到:
评论

相关推荐

    hibernate3.1参考手册中文版.pdf

    - **映射文件(.hbm.xml)**:用于定义实体类和数据库表之间的映射关系,包括字段对应、主键生成策略等。 3. **对象持久化**: - **持久化状态(Persistent State)**:对象被保存到数据库后,处于持久化状态。 ...

    专门为java程序员准备的API系列之五:Hibernate中文参考文档(3.1+3.2)

    4. **联合主键**:支持复合主键,可以将多个属性组合成一个主键。 5. **级联操作**:在保存、更新或删除操作时,可以指定是否级联到关联的对象。 6. **事件监听**:通过实现特定接口或使用注解,可以在对象生命...

    hibernate-annotations-3.1beta6

    其中,Hibernate注解是其核心特性之一,它允许开发者通过在实体类上添加注解来描述数据表结构,而无需编写XML配置文件。本文将详细探讨Hibernate注解3.1beta6版本中的关键概念和技术。 1. **注解基础** Hibernate...

    NHibernate中文帮助手册API

    (联合主键)composite-id  5.1.6. 鉴别器(discriminator)  5.1.7. 版本(version)(可选)  5.1.8. 时间戳 (可选)  5.1.9. 属性  5.1.10. 多对一  5.1.11. 一对一  5.1.12. 组件(component), 动态...

    Java相关课程系列笔记之十四Hibernate学习笔记

    - 联合主键:支持多个字段作为主键。 - 聚集函数:HQL支持SUM、COUNT、AVG等聚合操作。 - 分页查询:通过设置firstResult和maxResults实现分页。 - 异构查询:支持不同类型的对象混合查询。 通过深入学习和实践,...

    nhibernate2.1.2帮助

    - **联合子类**:joined-subclass元素用于定义每个子类对应一张独立表的继承模式。 - **并集子类**:union-subclass元素用于定义所有子类共享同一张表的继承模式。 - **连接映射**:join元素用于定义表之间的连接。 ...

    ZendFramework中文文档

    5.4. Zend_Config_Xml 6. Zend_Console_Getopt 6.1. Getopt 简介 6.2. 声明 Getopt 规则 6.2.1. 用短语法声明选项 6.2.2. 用长语法声明选项 6.3. 读取(Fetching)选项和参数 6.3.1. 操作 Getopt 异常 6.3.2...

    Hibernate Reference Documentation

    - **联合子类映射**:另一种多态映射策略。 - **集合映射**:包括 Map、Set、List 和 Bag 类型的映射。 - **导入**:可以导入其他映射文件中的映射声明。 **5.2 Hibernate 类型** - **实体和值类型**:区分实体...

    JPA学习笔记

    JPA支持单表继承(InheritanceType.SINGLE_TABLE)、联合继承(InheritanceType.JOINED)和表-per-hierarchy(InheritanceType.TABLE_PER_CLASS)三种继承策略。 ### 五、JPQL(Java Persistence Query Language) ...

    hibernate_3.2_官方中文参考手册.

    - **5.1.17 联合子类**:用于联合继承的映射。 - **5.1.18 连接**:定义表间关联的元素。 - **5.1.19 键**:关联映射中的外键字段。 - **5.1.20 字段和规则元素**:具体字段的映射及计算字段的定义。 - **...

    Hibernate Reference Documentation(Hibernate参考手册)

    - **joined-subclass**:联合子类映射。 - **map**、**set**、**list**、**bag**:集合类型的映射。 - **import**:引入其他映射文件。 ##### 4.2 Hibernate类型 - **实体与值**:实体类与值类型的区别。 - **基本...

    hibernate教程

    - **联合子类映射**:`joined-subclass` 元素用于多表继承时映射子类。 - **集合映射**:`map`、`set`、`list` 和 `bag` 元素用于映射集合类型的属性。 - **导入**:`import` 元素用于导入外部类或包,简化映射文件...

    quickDevelopDome.zip

    3.4 代码生成:使用MBP的代码生成器,根据数据库表生成对应的实体类、Mapper接口、Mapper XML文件、Service接口和服务实现类、Controller类。这一步大大减少了手动编码的工作量。 3.5 编写Controller:在生成的...

    SQL Server 2008编程入门经典(第3版)

    3.1 基本SELECT语句 3.1.1 SELECT语句与FROM子句 3.1.2 WHERE子句 3.1.3 ORDERBY子句 3.1.4 使用GROUPBY子句聚合数据 3.1.5 使用HAVING子句给分组设置条件 3.1.6 使用FORXML子句输出XML 3.1.7 通过OPTION子句利用...

    hibernate 框架详解

    3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 4.2. 获得SessionFactory 4.3. JDBC连接 4.4. 可选的配置属性 4.4.1. SQL方言 4.4.2. 外连接抓取...

Global site tag (gtag.js) - Google Analytics