实体关联的属性是个复杂类型的持久化类,但不是实体:数据库中没有表与该属性对应。需要将该属性的子属性保存到当前实体对应的表中。
Citizen类:
public class Citizen {
private Integer id;
private String name;
private Address address;
public Citizen() {
}
public Citizen(String name, Address address) {
this.name = name;
this.address = address;
}
// Getters and setters are omitted
}
Address类:
public class Address {
private String province;
private String city;
private String district;
public Address() {
}
public Address(String province, String city, String district) {
this.province = province;
this.city = city;
this.district = district;
}
// Getters and setters are omitted
}
Citizen.hbm.xml:
<hibernate-mapping package="com.john.myhibernate.domain">
<class name="Citizen" table="citizen">
<id name="id">
<generator class="native"/>
</id>
<property name="name" length="28" not-null="true" />
<component name="address">
<property name="province"/>
<property name="city"/>
<property name="district"/>
</component>
</class>
</hibernate-mapping>
测试保存:
public void testSave() {
Session s = null;
Transaction tx = null;
Address address = new Address("Zhejiang", "Hangzhou", "Binjiang");
Citizen citizen = new Citizen("Tremendously", address);
try {
s = HibernateUtil.getSession();
tx = s.beginTransaction();
s.save(citizen);
tx.commit();
} catch (HibernateException e) {
if (tx != null)
tx.rollback();
e.printStackTrace();
} finally {
if (s != null)
s.close();
}
}
数据库记录:
id | name | province | city | district |
1 | Tremendously | Zhejiang | Hangzhou | Binjiang |
分享到:
相关推荐
以上就是 Hibernate 组件之间的关联关系及其配置方法的详细介绍。了解并熟练运用这些关联,能够帮助开发者更高效地进行数据库操作,提高代码的可维护性和灵活性。在实际开发中,要根据业务需求选择合适的关联类型,...
在Hibernate中,组件(Component)是一种特殊的关联关系,它将一个类的实例嵌入到另一个类中,就像Java中的内部类一样。组件可以是任何复杂的对象结构,如地址、时间戳等,它们作为主对象的一部分存储在数据库中。...
"Hibernate组件映射代码详解" titre的知识点: * Hibernate组件映射代码的概念和实现 * 组件关联映射的属性和...Hibernate组件映射的配置文件是指People.hbm.xml文件,该文件用于描述实体类和组件类之间的映射关系。
在 Hibernate 中,数据关联映射是实现对象与数据库表之间关系转换的关键技术。 1. **一对一关联(One-to-One)**:一个实体对应数据库中的另一张表中的唯一一条记录。这可以通过在主键上添加外键约束或使用单独的...
2. 如果组件类包含复杂的关联关系,可能会增加查询和更新的复杂性。 3. 当组件类需要独立表时,需要考虑其生命周期管理和并发控制。 总结,Hibernate的组件映射通过注解或XML配置,为开发者提供了灵活的数据建模...
在Hibernate中,我们需要创建一个中间表来存储两个实体的关联关系,并在双方使用`@ManyToMany`注解。中间表可以通过`@JoinTable`注解来定义,包括`joinColumns`和`inverseJoinColumns`来指定两个实体的引用。同样,...
- **关联映射**:描述了不同POJO类之间的关联关系,例如一对多、多对多等。 #### 四、查询语言 Hibernate提供了丰富的查询语言支持,主要包括HQL(Hibernate Query Language)和Criteria API。 - **HQL**:类似于...
3. **定义数据关联**:设置关联关系,如@OneToOne, @OneToMany, @ManyToOne, @ManyToMany等。 4. **编写DAO**:实现CRUD操作,如Session工厂、事务管理等。 5. **整合Struts**:创建Action类,处理HTTP请求,调用DAO...
本实例将深入探讨Hibernate中的三种基本关联关系:一对一(One-to-One)、一对多(One-to-Many)以及多对多(Many-to-Many)的实现方式。 1. **一对一关联**: 一对一关联通常出现在两个实体之间存在唯一对应关系...
2. **集合映射**:通过一对多、多对一、多对多等关联关系,将集合属性与数据库表建立联系。 3. **排序集合**:对于需要按特定顺序存储的集合,可以使用排序集合(Sorted Collection)。 4. **双向关联**:在实体类...
“对应关系有一对一,多对一,多对多”则提示我们将深入学习这三种常见的数据库关联关系在Hibernate中的实现方式。 **Hibernate ORM详解** Hibernate是Java平台上的一个开源ORM框架,它通过提供数据持久化服务,...
### Hibernate对象关系详解 #### 一、单一关联(一对一) **定义** 一对一关联是指数据库中的两个表通过主键或外键的方式直接关联起来的一种关系。 **场景** 假设我们有两个类`Foo`和`Bar`,其中`Foo`有一个属性...
`createAlias`方法用于在Hibernate查询中指定关联关系,而JDBC部分则直接编写SQL JOIN查询来获取用户及其对应的订单信息。 "MY7.0.TXT"文件可能包含了项目的一些文档或者日志信息,而"新建文件夹"可能包含其他的源...
* `set`:定义一对多关联关系 这些配置项是 Hibernate 建立对象关系映射所需的基本信息。 Hibernate 配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。通过 hibernate.cfg.xml 和 .hbm.xml 文件,我们...
Hibernate 支持多种关联关系,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。关联关系可以通过外键或代理键实现,配置包括懒加载(lazy loading)和级联操作(cascading...
7. **关联映射**:包括一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)、多对多(@ManyToMany)关系的映射,方便处理对象间的关联关系。 8. **延迟加载**:Hibernate的懒加载策略可以在需要时才...
对象关联映射是Hibernate的核心特性,它支持一对一、一对多、多对一和多对多等多种关联关系。通过配置映射文件,可以定义实体之间的关联,如外键、集合等。 ### 继承映射和容器映射 - **继承映射**:Hibernate支持...
- 支持复杂的关联关系:一对多、多对一、一对一、多对多等。 - 支持延迟加载(Lazy Loading):只在真正需要时才加载关联的对象,减少数据库交互次数。 3. 使用Hibernate的jar包: - 将下载的hibernate压缩包...
此外,Hibernate3提供了强大的关联映射功能,如一对一、一对多、多对一和多对多关系,使得处理复杂的数据库关系变得简单。 总的来说,Hibernate3是一个功能强大的ORM工具,简化了Java应用程序与数据库的交互,提高...
- @OneToMany、@ManyToOne、@OneToOne和@ManyToMany用于处理关联关系,例如"hibernate-one2many"可能涉及一对多关系的配置。 四、关联关系映射 1. 一对一(@OneToOne):一个实体对应另一个实体的唯一实例。 2. 一...