public class Customer { private Integer id; private String name; private Address homeAddress; //家庭地址 private Address comAddress; //公司地址 // getter and setter }
public class Address { private String province; private String city; private String street; private String zipcode; //private Customer customer; // getter and setter }
<hibernate-mapping package="mypack"> <class name="Customer" table="tbl_customer"> <id name="id"> <generator class="increment" /> </id> <property name="name" /> <component name="homeAddress" class="Address"> <!-- <parent name="customer" /> --> <property name="province" column="home_province" /> <property name="city" column="home_city" /> <property name="street" column="home_street" /> <property name="zipcode" column="home_zipcode" /> </component> <component name="comAddress" class="Address"> <!-- <parent name="customer" /> --> <property name="province" column="com_province" /> <property name="city" column="com_city" /> <property name="street" column="com_street" /> <property name="zipcode" column="com_zipcode" /> </component> </class> </hibernate-mapping>
@Entity @Table(name = "tbl_customer") public class Customer { @Id @GenericGenerator(name = "myIncrement", strategy = "increment") @GeneratedValue(generator = "myIncrement") private Integer id; @Column(name = "name") private String name; @Embedded @AttributeOverrides({ @AttributeOverride(name = "province", column = @Column(name = "home_province")), @AttributeOverride(name = "city", column = @Column(name = "home_city")), @AttributeOverride(name = "street", column = @Column(name = "home_street")), @AttributeOverride(name = "zipcode", column = @Column(name = "home_zipcode")) }) private Address homeAddress; @Embedded @AttributeOverrides({ @AttributeOverride(name = "province", column = @Column(name = "com_province")), @AttributeOverride(name = "city", column = @Column(name = "com_city")), @AttributeOverride(name = "street", column = @Column(name = "com_street")), @AttributeOverride(name = "zipcode", column = @Column(name = "com_zipcode")) }) private Address comAddress; // getter and setter }
@Embeddable public class Address implements Serializable { private String province; private String city; private String street; private String zipcode; //@Transient //private Customer customer; // getter and setter }
Customer customer = new Customer(); Address homeAddress = new Address("province1", "city1", "street1", "100001"); Address comAddress = new Address("province2", "city2", "street2", "200002"); customer.setName("Tom"); customer.setHomeAddress(homeAddress); customer.setComAddress(comAddress); session.save(customer);
Hibernate: create table tbl_customer ( id integer not null, name varchar(255), home_province varchar(255), home_city varchar(255), home_street varchar(255), home_zipcode varchar(255), com_province varchar(255), com_city varchar(255), com_street varchar(255), com_zipcode varchar(255), primary key (id) )
相关推荐
在本教程中,我们将深入探讨Hibernate中的一个关键概念——关系映射中的组件映射。Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,它允许开发人员以面向对象的方式处理数据库操作,极大地简化了数据层...
在Hibernate中,组件映射是将一个类的实例作为另一个类的一个属性进行持久化的过程。这种映射方式有助于保持数据模型的整洁和逻辑性,同时也使得数据的管理更为高效。下面我们将详细探讨Hibernate的组件映射。 一、...
《Hibernate组件映射:Annotation与XML的融合》 在Java持久化领域,Hibernate是一个不可或缺的框架,它提供了强大的对象关系映射(ORM)能力。本文将深入探讨Hibernate中的组件映射,包括使用注解(Annotation)和...
"Hibernate组件映射代码详解" titre的知识点: * Hibernate组件映射代码的概念和实现 * 组件关联映射的属性和特点 * Hibernate组件映射的优点和应用场景 描述的知识点: * Hibernate组件映射代码的详细解释 *...
1. **依赖注入(Dependency Injection,DI)**:Spring通过XML配置或注解方式,将Hibernate的相关组件如SessionFactory、Session等注入到需要使用它们的类中,避免了手动创建和管理这些对象。 2. **事务管理...
组件映射允许将一个类的属性作为另一个类的一部分,类似于 Java 中的嵌套类。使用 @Component 或 @Embeddable 注解来标记可嵌入的组件类,然后在父类中使用 @Embedded 或 @EmbeddableId 来引用它们。 **联合主键...
本文将主要基于Hibernate中的组件映射进行讨论,因为文件名“hibernate_component_mapping”提示了我们这是关于Hibernate的内容。 首先,让我们理解什么是Hibernate。Hibernate是一个流行的开源Java库,它作为ORM...
在IT行业中,SpringMVC和Hibernate是两个非常重要的框架,它们分别是用于构建Web应用程序和对象关系映射(ORM)的工具。在这个“springmvc+hibernate多表映射”的主题中,我们将深入探讨如何在SpringMVC项目中集成...
Hibernate的核心组件包括配置文件、实体类、映射文件以及SessionFactory和Session接口。 1. **配置文件**:通常为`hibernate.cfg.xml`,用来配置数据库连接信息,如JDBC驱动、URL、用户名和密码等。 2. **实体类**...
二、 Hibernate核心组件 1. Configuration:配置对象,用于加载hibernate配置文件和数据库连接信息。 2. SessionFactory:会话工厂,是线程安全的,用于创建Session对象。 3. Session:工作单元,负责执行CRUD操作,...
### Hibernate中的相关组件介绍 #### 一、Hibernate配置文件(`hibernate.cfg.xml`) 在Hibernate框架中,默认的配置文件被命名为`hibernate.cfg.xml`。此配置文件是Hibernate初始化过程中的关键组成部分,它定义...
在Java世界中,ORM(对象关系映射)框架如Hibernate极大地简化了数据库操作。本教程主要探讨的是Hibernate中的“继承映射”特性,这是一项关键功能,它允许我们将复杂的类继承结构映射到数据库表中。通过继承映射,...
4. **源码分析**:理解组件映射的关键在于查看和理解Hibernate的源码。通过阅读`org.hibernate.mapping.Component`类和相关的映射处理代码,我们可以看到组件是如何被处理并转化为SQL语句的。这有助于我们深入理解...
在`java组件——hibernate.ppt`和`HibernatePractice`中,可能会包含关于如何在实际项目中设置这些映射和继承策略的示例。例如,如何配置 XML 映射文件(hbm.xml)或使用注解进行映射,以及如何在代码中操作这些关联...
Hibernate4是Java领域主流的对象关系映射(Object-Relational Mapping, ORM)框架,它简化了数据库操作,使开发者可以使用面向对象的方式处理数据。在Spring4中整合Hibernate4,可以利用Spring的Transaction ...
总结来说,"Hibernate4 必备包"包含了运行和开发基于Hibernate4的应用程序所需的基本组件。这些组件涵盖了ORM核心、数据查询、事务管理、关联映射等多个方面,为开发者提供了强大且灵活的数据库操作工具。通过合理...
在SSH架构中,Hibernate4负责将Java对象映射到数据库表,处理数据的CRUD(创建、读取、更新和删除)操作。 **c3p0** c3p0是一个开源的JDBC连接池,用于提高数据库访问性能。它管理数据库连接的创建、分配、回收和...
在实际应用中,我们还需要创建一个SessionFactory,它是Hibernate的核心组件,通过它来获取Session实例,进而进行CRUD操作。SessionFactory的创建通常在应用启动时完成,例如: ```java Configuration config = new...