`
mutongwu
  • 浏览: 449964 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[Hibernate]多个字段共同构成主键

    博客分类:
  • SSH
阅读更多
表SWPBusinessToDo 拥有2个字段,一起构成主键。
//表的主体映射
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "TB_SWP_BusinessToDo")
@SuppressWarnings("serial")
public class SWPBusinessToDo implements java.io.Serializable{
	@Id
	private SWPBusinessToDoPK id;

	public SWPBusinessToDoPK getId() {
		return id;
	}
	public void setId(SWPBusinessToDoPK id) {
		this.id = id;
	}
}
//将形成主键的字段抽取出来,单独做一个嵌套映射。
//要求重写了equals 跟 hashCode 方法。
import javax.persistence.Column;
import javax.persistence.Embeddable;

@Embeddable
public class SWPBusinessToDoPK implements java.io.Serializable{

	private static final long serialVersionUID = 1L;

	private Long businessId;

	private String operator;

	@Column(name = "businessId", nullable = true, unique = false, insertable = true, updatable = true)
	public Long getBusinessId() {
		return businessId;
	}

	public void setBusinessId(Long businessId) {
		this.businessId = businessId;
	}
	@Column(name = "operator", nullable = true, unique = false, insertable = true, updatable = true)
	public String getOperator() {
		return operator;
	}

	public void setOperator(String operator) {
		this.operator = operator;
	}
        
	@Override
	public boolean equals(Object obj) {
		if(obj instanceof SWPBusinessToDoPK){
			SWPBusinessToDoPK pk = (SWPBusinessToDoPK)obj;
			if(pk.getBusinessId() == this.businessId && 
					pk.getOperator().equals(this.operator)){
				return true;
			}
		}
		return false;
	}

	@Override
	public int hashCode() {
		return (this.operator + this.businessId).hashCode();
	}
	
}


使用的时候,例如:
    SWPBusiness  = new SWPBusinessToDo();
    SWPBusinessToDoPK pk = new SWPBusinessToDoPK();
    pk.setBusinessId( businessId);
    pk.setOperator(operatorId);
    
    SWPBusiness.setId(pk);
分享到:
评论

相关推荐

    Hibernate一对多使用非主键关联设置

    在一对多非主键关联中,关联字段不是一方的主键,而是另外的一个字段。假设我们有两张表,一个是`Department`(部门),一个是`Employee`(员工)。`Department`表有一个非主键字段`department_code`,`Employee`表...

    hibernate 无主键表映射

    在数据库设计中,如果一个实体的唯一标识由两个或更多个字段共同组成,那么这些字段就构成了复合主键。例如,一个订单可能由客户ID和订单号共同唯一标识,而不是只有一个字段。 在Hibernate中,无主键表映射通常...

    java hibernate使用注解来定义联合主键

    在Java Hibernate框架中,联合主键(Composite Key)是指由两个或多个属性共同构成的主键,这在处理一些特定的数据模型时非常有用。本文将详细介绍如何使用Hibernate注解来定义联合主键。 首先,我们需要了解联合...

    Hibernate复合主键

    复合主键是指由多个字段组成的主键,用于唯一标识一个实体。在本例中,我们将通过一个简单的复合主键的做关联类的例子来说明 Hibernate 复合主键的使用。 复合主键的定义 在 Java 中,复合主键类需要实现 equals ...

    hibernate复合主键设置

    在Java的持久化框架Hibernate中,复合主键(Composite Key)是一种特殊的数据结构,用于处理具有多个字段作为唯一标识的情况。本教程将深入探讨如何在Hibernate中设置复合主键,并提供一个可直接使用的配置示例。 ...

    hibernate使用主键关联的一对一关系

    在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来实现两个实体类之间的这种一对一绑定。下面我们将深入探讨这一主题。 首先,我们需要理解一对一关系的概念。在数据库中,一对一关系意味...

    hibernate联合主键全攻略

    联合主键(Composite Primary Key),是指在数据库表中使用两个或多个字段共同作为主键来唯一标识每一行记录。这种方式在实际应用中非常常见,尤其是在需要通过多维度数据来确定唯一性的场景下。 ### Hibernate联合...

    hibernate复合主键配置和使用

    复合主键(Composite Key)是指由两个或更多个列共同组成的主键,这些列的组合具有唯一性,确保了数据的完整性。在数据库设计中,复合主键是解决某些特定情况下的有效手段。 二、Hibernate中的复合主键配置 在...

    Hibernate注解映射联合主键

    在Java的持久化框架Hibernate中,联合主键(Composite Key)是一种特殊的数据模型设计,用于处理具有多个字段作为主键的实体。联合主键通常在数据表中的某些列共同决定了唯一标识的情况出现。在Hibernate中,有三种...

    Hibernate联合主键的例子

    与单个字段作为主键不同,联合主键由两个或更多个字段共同组成,形成一个唯一的标识。在本教程中,我们将通过一个具体的MyEclipse例子来探讨如何在Hibernate中实现联合主键。 首先,我们需要理解联合主键的基本概念...

    Hibernate主键生成方式

    在Java的持久化框架Hibernate中,主键生成策略是一个关键的概念,它决定了如何为数据库中的实体对象生成唯一的标识符(主键)。以下是关于Hibernate主键生成方式的详细说明: 1. **Identity方式**:`...

    hibernate的联合主键怎么设置

    在 Hibernate 中,联合主键(Composite Key)是指由两个或多个属性共同构成的主键,这种主键在数据库设计中常见于需要多个字段唯一标识一条记录的情况。在 Hibernate 中设置联合主键通常需要以下几个步骤: 1. **...

    hibernate复合主键映射

    在Java的持久化框架Hibernate中,复合主键(Composite Key)是一种特殊的数据模型,它用于表示由多个属性共同构成的唯一标识。这种设计通常出现在实体类的某些属性组合起来才能唯一确定一个对象的情况下。本篇文章将...

    Hibernate一对一主键关联映射(双向关联)

    标题"Hibernate一对一主键关联映射(双向关联)"中的"主键关联"指的是两个实体通过共享相同的主键来建立关联。"双向关联"则意味着在两个实体类中,都可以直接访问到对方的实例,即在实体A中有一个对实体B的引用,...

    hibernate主键生成策略

    ### Hibernate 主键生成策略详解 #### 一、概述 Hibernate 是一款开源的对象关系映射 (ORM) 框架,它极大地简化了 Java 应用程序与数据库之间的交互过程。在使用 Hibernate 进行持久化操作时,经常需要处理实体类...

    Hibernate Annotation 共享主键一对一双向关联

    `Person`类中的`profile`属性使用了`mappedBy`属性,表明`Profile`是被关联方,`Profile`类中的`person`属性则使用了`@OneToOne`和`@PrimaryKeyJoinColumn`注解,表示`Person`是关联方,且主键和外键是同一个字段。...

    Hibernate主键生成策略

    - **描述**:使用外部表的一个字段作为主键。 - **优点**:可以在一定程度上保证主键的唯一性。 - **缺点**:需要额外维护一个外部表。 - **应用场景**:当需要与外部系统进行关联时。 11. **select** - **...

    hibernate复合主键的实例

    在Java的持久化框架Hibernate中,复合主键(Composite Key)是一种特殊的数据结构,用于处理具有多个字段作为唯一标识的情况。本实例将深入探讨如何在Hibernate中实现复合主键,并提供一个具体的示例来帮助理解。 ...

    Hibernate中对数据库复合主键的支持.pdf

    复合主键是指由两个或多个字段共同组成的数据表主键,它可以更好地满足业务需求,并提高数据的一致性和完整性。本文将详细介绍Hibernate中如何支持数据库的复合主键。 #### 二、复合主键的概念 在关系型数据库中,...

Global site tag (gtag.js) - Google Analytics