Db2 表:Test 只有一个测试字段:name character(10)
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);
分享到:
相关推荐
在Hibernate中,对无主键表的操作与普通实体基本相同,只是在保存和查询时需要传入整个复合主键对象。例如,创建一个新的订单: ```java OrderKey key = new OrderKey(); key.setCustomerId("123"); key.setOrderId...
在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来实现两个实体类之间的这种一对一绑定。下面我们将深入探讨这一主题。 首先,我们需要理解一对一关系的概念。在数据库中,一对一关系意味...
在Java的持久化框架中,Hibernate是...总之,掌握Hibernate Annotation中的共享主键一对一双向关联,能够帮助开发者更高效地进行数据库操作,提升项目的开发效率。通过深入学习和实践,可以更好地理解和利用这一特性。
在业务代码中,创建和操作复合主键的实体对象与普通实体对象并无太大区别。只需要确保在创建新的`OrderItem`实例时,为其`id`属性提供正确的`OrderItemId`实例即可。 总结,复合主键在Hibernate中是通过`@...
本文将深入探讨Hibernate对复合主键的支持,帮助开发者更好地理解和应用这一特性。 一、什么是复合主键? 复合主键(Composite Key)是指由两个或更多个列共同组成的主键,这些列的组合具有唯一性,确保了数据的...
联合主键(Composite Primary Key),是指在数据库表中使用两个或多个字段共同作为主键来唯一标识每一行记录。这种方式在实际应用中非常常见,尤其是在需要通过多维度数据来确定唯一性的场景下。 ### Hibernate联合...
有了以上配置,你就可以在程序中通过 Hibernate API 来操作这个联合主键的实体类了,例如增删改查等操作。 接下来,我们讨论 `inverse` 属性的影响。`inverse` 属性用于控制在一个关联关系中,哪一方负责维护关联...
在Java持久化框架Hibernate中,联合主键(Composite Key)是一种特殊的数据结构,用于标识数据库表中的一条记录。与单个字段作为主键不同,联合主键由两个或更多个字段共同组成,形成一个唯一的标识。在本教程中,...
为了使这个复合主键能够正确地参与到数据库的关联操作中,我们还需要创建一个对应的`@TableGenerator`,以便为每个复合主键生成一个唯一的序列号。这通常不是必需的,因为复合主键通常是业务逻辑决定的,而不是自增...
【hibernate主键生成策略】是Hibernate框架中用于生成持久化对象主键的重要机制,它决定了如何在数据库中创建唯一的标识符。在SSH(Spring、Struts、Hibernate)架构中,Hibernate作为持久层框架,主键生成策略的...
但这种方式只适用于单个 Hibernate 实例,多实例并发操作时可能会导致主键冲突。 - **优点**:简单易用。 - **缺点**:不支持多实例环境。 - **应用场景**:单实例且对主键顺序有较高要求的场景。 4. **sequence...
本篇将深入探讨在Hibernate中实现一对一主键关联映射的单项关联方式。这种关联意味着两个实体类共享相同的主键,即一个实体类的一个实例对应另一个实体类的唯一实例。 首先,我们要明确一对一主键关联映射的基本...
标题"Hibernate一对一主键关联映射(双向关联)"中的"主键关联"指的是两个实体通过共享相同的主键来建立关联。"双向关联"则意味着在两个实体类中,都可以直接访问到对方的实例,即在实体A中有一个对实体B的引用,...
其中,主键生成策略是Hibernate配置中的一个重要部分,它决定了表中的主键值如何生成。本文将重点介绍在Oracle数据库环境下,使用Hibernate的“native”策略来生成主键的具体方法及注意事项。 #### 二、主键生成...
在Hibernate中,有三种主要的注解方式来映射联合主键,以下是对这三种方式的详细解释: 1. **使用`@Embeddable`和`@Id`** 在这种映射方式中,联合主键的字段被放在一个单独的类中,这个类需要实现`java.io....
### hibernate主键生成策略详解 #### 一、assigned **assigned** 主键生成策略意味着主键的值是由外部程序负责生成的,并且在执行 `save()` 方法之前必须明确指定一个值。在这种策略下,Hibernate 不参与主键的...
在使用Hibernate进行持久化操作时,合理选择和配置主键生成策略对于确保数据的一致性和优化性能至关重要。本文将详细介绍几种常见的主键生成策略,并结合示例代码帮助读者更好地理解和运用。 #### 二、assigned - ...
在Java的持久化框架Hibernate中,一对一(One-to-One)主键映射是一种常见的关联关系。这种映射方式使得两个实体类共享同一个主键,从而建立一对一的关系。在这个实例中,我们将深入探讨Hibernate一对一主键映射的...