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>
相关推荐
- **映射文件(.hbm.xml)**:用于定义实体类和数据库表之间的映射关系,包括字段对应、主键生成策略等。 3. **对象持久化**: - **持久化状态(Persistent State)**:对象被保存到数据库后,处于持久化状态。 ...
4. **联合主键**:支持复合主键,可以将多个属性组合成一个主键。 5. **级联操作**:在保存、更新或删除操作时,可以指定是否级联到关联的对象。 6. **事件监听**:通过实现特定接口或使用注解,可以在对象生命...
其中,Hibernate注解是其核心特性之一,它允许开发者通过在实体类上添加注解来描述数据表结构,而无需编写XML配置文件。本文将详细探讨Hibernate注解3.1beta6版本中的关键概念和技术。 1. **注解基础** Hibernate...
(联合主键)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), 动态...
- 联合主键:支持多个字段作为主键。 - 聚集函数:HQL支持SUM、COUNT、AVG等聚合操作。 - 分页查询:通过设置firstResult和maxResults实现分页。 - 异构查询:支持不同类型的对象混合查询。 通过深入学习和实践,...
- **联合子类**:joined-subclass元素用于定义每个子类对应一张独立表的继承模式。 - **并集子类**:union-subclass元素用于定义所有子类共享同一张表的继承模式。 - **连接映射**:join元素用于定义表之间的连接。 ...
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...
- **联合子类映射**:另一种多态映射策略。 - **集合映射**:包括 Map、Set、List 和 Bag 类型的映射。 - **导入**:可以导入其他映射文件中的映射声明。 **5.2 Hibernate 类型** - **实体和值类型**:区分实体...
JPA支持单表继承(InheritanceType.SINGLE_TABLE)、联合继承(InheritanceType.JOINED)和表-per-hierarchy(InheritanceType.TABLE_PER_CLASS)三种继承策略。 ### 五、JPQL(Java Persistence Query Language) ...
- **5.1.17 联合子类**:用于联合继承的映射。 - **5.1.18 连接**:定义表间关联的元素。 - **5.1.19 键**:关联映射中的外键字段。 - **5.1.20 字段和规则元素**:具体字段的映射及计算字段的定义。 - **...
- **joined-subclass**:联合子类映射。 - **map**、**set**、**list**、**bag**:集合类型的映射。 - **import**:引入其他映射文件。 ##### 4.2 Hibernate类型 - **实体与值**:实体类与值类型的区别。 - **基本...
- **联合子类映射**:`joined-subclass` 元素用于多表继承时映射子类。 - **集合映射**:`map`、`set`、`list` 和 `bag` 元素用于映射集合类型的属性。 - **导入**:`import` 元素用于导入外部类或包,简化映射文件...
3.4 代码生成:使用MBP的代码生成器,根据数据库表生成对应的实体类、Mapper接口、Mapper XML文件、Service接口和服务实现类、Controller类。这一步大大减少了手动编码的工作量。 3.5 编写Controller:在生成的...
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子句利用...
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. 外连接抓取...