Db2 表:Test 只有一个测试字段:name character(10)
Hibernate的hbm文件:Test.hbm.xml
xml 代码
- Hibernate的hbm文件:Test.hbm.xml
-
- <!---->xml version="1.0"?>
- <!---->>
- <hibernate-mapping>
- <class name="Test" table="test">
- <composite-id name="testpk" class="Testpk" unsaved-value="any">
- <key-property name="name" column="name" type="string"/>
- composite-id>
- class>
- hibernate-mapping>
Test.java
import java.io.Serializable;
public class Test implements Serializable{
private Testpk testpk;
public void setTestpk(Testpk value){
this.testpk=value;
}
public Testpk getTestpk(){
return this.testpk;
}
}
Testpk.java
import java.io.Serializable;
public class Testpk implements Serializable{
private String name;
public String getName()
{
return this.name;
}
public void setName(String value){
this.name=value;
}
public boolean equals(Object other) {
Testpk that = (Testpk) other;
return this.name.equals(that.name);
}
/**
* Returns the hash code for the key.
*/
public int hashCode() {
return (this.name.hashCode());
}
}
测试代码:
Test t=new Test();
Testpk tpk=new Testpk();
tpk.setName("test000000");
t.setTestpk(tpk);
session.save(t);
最后值得注意的是当要load的时候,不能简单的Test t=(Test)session.load(Test.class,"test000000"); 而使用一个Testpk作为一个实体类的标识符。
所以应该这么写:
Testpk tpk=new Testpk();
tpk.setName("test000000");
Test t=(Test)session.load(Test.class,tpk);
环境DB2、Eclipise、Hibernate2测试成功
分享到:
相关推荐
在Hibernate中,对无主键表的操作与普通实体基本相同,只是在保存和查询时需要传入整个复合主键对象。例如,创建一个新的订单: ```java OrderKey key = new OrderKey(); key.setCustomerId("123"); key.setOrderId...
本篇将深入探讨在Hibernate中实现一对一主键关联映射的单项关联方式。这种关联意味着两个实体类共享相同的主键,即一个实体类的一个实例对应另一个实体类的唯一实例。 首先,我们要明确一对一主键关联映射的基本...
本文将深入探讨Hibernate中自动生成主键的几种常见策略及其应用场景。 ### 1. UUID.hex UUID(Universally Unique Identifier)是一种生成全局唯一标识符的方式,其长度为128位,通常表示为32个十六进制数字组成的...
在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来实现两个实体类之间的这种一对一绑定。下面我们将深入探讨这一主题。 首先,我们需要理解一对一关系的概念。在数据库中,一对一关系意味...
标题"Hibernate一对一主键关联映射(双向关联)"中的"主键关联"指的是两个实体通过共享相同的主键来建立关联。"双向关联"则意味着在两个实体类中,都可以直接访问到对方的实例,即在实体A中有一个对实体B的引用,...
在业务代码中,创建和操作复合主键的实体对象与普通实体对象并无太大区别。只需要确保在创建新的`OrderItem`实例时,为其`id`属性提供正确的`OrderItemId`实例即可。 总结,复合主键在Hibernate中是通过`@...
在Java的持久化框架Hibernate中,一对一(One-to-One)主键映射是一种常见的关联关系。这种映射方式使得两个实体类共享同一个主键,从而建立一对一的关系。在这个实例中,我们将深入探讨Hibernate一对一主键映射的...
在Java的持久化框架中,Hibernate是...总之,掌握Hibernate Annotation中的共享主键一对一双向关联,能够帮助开发者更高效地进行数据库操作,提升项目的开发效率。通过深入学习和实践,可以更好地理解和利用这一特性。
然而,当我们面临复杂的数据表结构,尤其是涉及到复合主键时,如何在Hibernate中进行配置和使用就显得尤为重要。本文将深入探讨Hibernate对复合主键的支持,帮助开发者更好地理解和应用这一特性。 一、什么是复合...
在Hibernate中,有三种主要的注解方式来映射联合主键,以下是对这三种方式的详细解释: 1. **使用`@Embeddable`和`@Id`** 在这种映射方式中,联合主键的字段被放在一个单独的类中,这个类需要实现`java.io....
总之,Hibernate的一对多主键关联映射是数据库表关系在对象模型中的体现,理解和掌握这种映射方式对于Java开发者尤其重要,尤其是在进行复杂业务逻辑处理时。通过阅读和实践提供的源代码,你应该能够深入理解并运用...
- 查询操作中,如果只根据联合主键的部分字段进行查询,可能会返回多条记录,因此在设计查询逻辑时需格外小心。 总的来说,Hibernate联合主键的使用为复杂的数据关系提供了强大的支持,但同时也增加了设计和编码的...
通过提供对象-关系映射,Hibernate允许开发者将数据库操作转换为对Java对象的操作,从而减少了编写SQL语句的工作量。 ### 2. 为什么选择UUID作为主键 - **全局唯一性**:UUID生成的键值在全世界范围内都是唯一的,...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是一种常见的关系映射方式,用于表示两个实体之间一对一的对应关系。本篇主要探讨的是基于主键(Primary Key)的双向关联映射,这在实际项目中非常常见...
有了以上配置,你就可以在程序中通过 Hibernate API 来操作这个联合主键的实体类了,例如增删改查等操作。 接下来,我们讨论 `inverse` 属性的影响。`inverse` 属性用于控制在一个关联关系中,哪一方负责维护关联...
首先,我们需要理解一对一关联的含义:在数据库中,如果一个表的记录只能与另一个表的唯一一条记录对应,这就构成了主键关联的一对一关系。例如,一个人可能只有一个护照,那么“人”表和“护照”表之间的关系就是一...
在Hibernate中,一对一的关联可以通过共享主键来实现,即两个表共用一个主键字段。 1. **注解配置**: Hibernate使用注解来声明实体类和它们之间的关系。对于一对一的主键关联,我们需要在两个实体类中都添加`@...
其中,主键生成策略是Hibernate配置中的一个重要部分,它决定了表中的主键值如何生成。本文将重点介绍在Oracle数据库环境下,使用Hibernate的“native”策略来生成主键的具体方法及注意事项。 #### 二、主键生成...
在Java持久化框架Hibernate中,联合主键(Composite Key)是一种特殊的数据结构,用于标识数据库表中的一条记录。与单个字段作为主键不同,联合主键由两个或更多个字段共同组成,形成一个唯一的标识。在本教程中,...