主键类:
Public class CustomerId implements Serializable{ Private final String name; Private final String companyid; }
映射文件 :
<class name=”test.Customer” table=”CUSTOMERS”> <composite-id name=”customerId” class=”test.CustomerId”> <key-property name=”name” column=”NAME” type=”string”/> <key-property name=”companyId” column=”COMPANY_ID” type=”long”/> </composite-id> <version name=”varsion” column=”VERSION” unsaved-value=”0”/> <many-to-one name=”company” class=”test.Company” column=”COMPANY_ID” insert=”false” update=”false”/> <set name=”orders” lazy=”true” inverse=”true”> <key> <column=”NAME”/> <column=”COMPANY_ID”/> </key> </set> </class> <class name=”test.Order” table=”ORDERS”> <many-to-one name=”customer” class=”test.Customer”> <column=”NAME”/> <column=”COMPANY_ID”/> </many-to-one> </class>
或者:
<class name=”test.Customer” table=”CUSTOMERS”> <composite-id name=”customerId” class=”test.CustomerId”> <key-property name=”name” column=”NAME” type=”string”/> <key-many-to-one name=”company” class=”test.Company” column=”COMPANY_ID”/> </composite-id> <version name=”varsion” column=”VERSION” unsaved-value=”0”/> <set name=”orders” lazy=”true” inverse=”true”> <key> <column=”NAME”/> <column=”COMPANY_ID”/> </key> </set> </class> <class name=”test.Order” table=”ORDERS”> <many-to-one name=”customer” class=”test.Customer”> <column=”NAME”/> <column=”COMPANY_ID”/> </many-to-one> </class>
分享到:
相关推荐
本篇文章将深入探讨Hibernate如何处理复合主键映射,并通过实例进行解析。 复合主键在数据库设计中是常见的,例如,考虑一个订单明细表,其中订单号(order_id)和商品编号(product_id)结合在一起可以唯一识别一...
三、配置Hibernate映射文件 在XML配置时代,我们需要在Hibernate的映射文件(.hbm.xml)中显式声明复合主键。现在,大多数项目都使用注解配置,但如果你仍然需要处理旧的项目,这里是如何配置的示例: ```xml ...
通过以上的解释,我们可以看到,虽然无主键表在数据库中并不常见,但在某些特定场景下,如复合主键,Hibernate提供了一套完整的解决方案。所提供的资源包括一个简单的Demo,可以实际运行并理解无主键表映射的实现...
在Hibernate的映射文件(XML方式)或者使用JPA注解(Java方式)中,需要为复合主键提供相应的配置。对于XML配置,你可能会看到类似以下的设置: ```xml <hibernate-mapping> <!-- 其他属性的映射 --> ...
在Java的持久化框架Hibernate中,复合主键(Composite Key)是一种特殊的数据结构,用于处理具有多个字段作为唯一标识的情况。本实例将深入探讨如何在Hibernate中实现复合主键,并提供一个具体的示例来帮助理解。 ...
本篇文章将深入探讨Hibernate如何支持和管理复合主键。 一、理解复合主键 在数据库设计中,复合主键是一种特殊情况,当单个字段不能唯一标识表中的每一行时,可以使用两个或多个字段的组合来创建唯一的标识。例如...
6. `<join>`:用于处理复合主键或者跨表的复杂映射。 生成工具的工作原理大致如下: 1. 连接数据库:工具会首先连接到指定的数据库,获取数据库的元数据信息,如表名、列名、约束等。 2. 分析表结构:根据数据库中...
在Java的Hibernate框架中,复合主键映射是一种处理多列组合成主键的情况,它使得在数据库表中由两个或更多个字段组成的主键能够被正确地映射到实体类。在使用复合主键时,我们需要遵循一定的步骤和规则。 首先,...
本文详细介绍了如何在Hibernate中实现复合主键,包括复合主键类的定义、Hibernate映射文件的配置以及实体类的设计。通过这种方式,我们可以有效地利用复合主键来保证数据的唯一性和完整性。此外,还提供了一个简单的...
通过这种方式,Hibernate将知道如何处理`UserRole`类,将其映射到具有复合主键的数据库表。 3. 嵌入式主键(Embedded Id): 如果希望将主键字段作为实体类的一部分,而不是单独的类,可以使用`@EmbeddedId`和`@...
### Hibernate中对数据库复合主键的支持 #### 一、引言 在软件开发过程中,特别是在J2EE领域中,Hibernate作为一种流行的ORM(Object-Relational Mapping)框架被广泛使用。ORM框架的主要作用是将关系型数据库中的...
在Hibernate中,Map通常对应于数据库的复合主键或者关联表。配置示例: ```xml ``` 这里的`<map>`元素定义了一个名为`preferences`的Map集合,`<key>`元素对应外键,`<map-key>`元素指定Map的键列和类型,...
【标题】"Hibernate映射文件结构"涉及到的是Java持久化框架Hibernate的核心概念,它用于将对象与数据库表之间的关系进行定义。映射文件是Hibernate工作的重要组成部分,它们以XML格式编写,通常命名为`.hbm.xml`,并...
1)根元素映射<hibernate-mapping/> 2)类映射 3)属性映射 4)主键的配置 5)主键生成策略 复合主键策略 史上最详细
复合主键关联映射则是处理具有多个字段作为主键的表与对象之间的映射。 通过理解这些知识点,开发者可以更有效地利用Hibernate框架来开发复杂的企业级应用,处理数据持久化以及对象和关系数据库之间的映射。...
`@EmbeddedId`用于指定实体的主键类,而`@Embeddable`则用于声明这个类为复合主键类。 六、延迟加载(Lazy Loading) Hibernate提供了延迟加载机制,可以按需加载关联对象,以提高性能。默认情况下,`@ManyToOne`...
总结来说,Hibernate的复合主键映射允许我们将由多个属性组成的主键映射到对象上,通过在映射配置文件中使用`<composite-id>`标签,并为每个主键属性创建`<key-property>`。此外,通过创建一个专门的主键类,我们...