0 0

hibernate一对一主键映射,总是生成多余字段5

Jsxx.java
@Entity
@Table(name="jsxx")
public class Jsxx extends BaseDomain{
	@Id
	private String id;
	private Jskyxx jskyxx;
	@OneToOne(mappedBy="jsxx")
	public Jskyxx getJskyxx() {
		return jskyxx;
	}
	public void setJskyxx(Jskyxx jskyxx) {
		this.jskyxx = jskyxx;
	}
}

Jskyxx.java
@Entity
@Table(name="jskyxx")
public class Jskyxx extends BaseDomain{
	@Id
//	@GeneratedValue(generator="pkgenerator")
//	@GenericGenerator(
//			name="pkgenerator",
//				strategy="foreign",
//					parameters={@Parameter(name="property",value="Jsxx")})
	private String id;
	private Jsxx jsxx;
	@OneToOne(cascade=CascadeType.ALL)
	@PrimaryKeyJoinColumn
	public Jsxx getJsxx() {
		return jsxx;
	}
	public void setJsxx(Jsxx jsxx) {
		this.jsxx = jsxx;
	}
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
}


以上是两个实体类,jsxx 和 jskyxx的主键相同,jskyxx参考jsxx的主键,但是生成数据库表模式时,没有忽略这个那个一对一属性,各多生成一个字段,类型是varbinary(255). ps:数据库是sqlserver2008,hibernate版本3.6.8

请问是怎么回事呢?

问题补充:jsxx表示教师基本信息,jskyxx表示教师科研信息,其实可以放在同一张表,老师提出说要分两张表,难以理解,这个问题应该用一对一主键方式吧?

问题补充:后来我用了xml文件的方式,可以实现,难道注解有bug?麻烦大家在高版本的hibernate试试看,或者是我配置得不对?
2012年11月22日 16:46

1个答案 按时间排序 按投票排序

0 0

你这种情况应该属于一对一主键双向关联映射,看下下面的例子,参照修改一下应该就可以了。和你的情况一样。

http://www.blogjava.net/sxyx2008/archive/2010/10/14/335093.html

2012年11月22日 21:31

相关推荐

    Hibernate一对一主键映射

    在Hibernate中,一对一主键映射主要通过共享主键来实现,即两个实体类共用同一个主键字段。这样可以确保两个表之间的关联是唯一的。 3. **配置映射文件**: 在Hibernate的XML映射文件中,我们需要为两个实体类...

    hibernate 无主键表映射

    在Java的持久化框架Hibernate中,无主键表映射是一种特殊情况,主要处理那些在数据库中没有明确单一主键的表。这种情况通常出现在那些通过多个字段共同唯一标识一条记录的复合主键(Composite Key)场景。本文将详细...

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

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

    hibernate一对一主键关联映射(单项关联)

    本篇将深入探讨在Hibernate中实现一对一主键关联映射的单项关联方式。这种关联意味着两个实体类共享相同的主键,即一个实体类的一个实例对应另一个实体类的唯一实例。 首先,我们要明确一对一主键关联映射的基本...

    hibernate一对一主键关联映射(双项关联)

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是一种常见的关系映射方式,用于表示两个实体之间一对一的对应关系。本篇主要探讨的是基于主键(Primary Key)的双向关联映射,这在实际项目中非常常见...

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

    总结来说,Hibernate中的一对一主键关联映射允许两个实体共享同一个主键,实现单向关联时只需在依赖方添加对另一方的引用。在实际应用中,应根据业务需求谨慎选择关联类型,以确保数据的完整性和一致性。

    hibernate 双向一对一基于主键的关联映射

    在Java持久化框架Hibernate中,双向一对一(OneToOne)基于主键的关联映射是一种常见的对象关系映射(ORM)技术。这种映射方式允许两个实体类之间建立一对一的关联,且关联是通过主键来实现的。接下来,我们将深入...

    Hibernate映射文件主键的生成

    以上就是Hibernate主键生成的常见策略,每种策略都有其适用的场景。在实际开发中,应根据数据库类型和需求选择合适的主键生成策略,确保数据的一致性和完整性。理解并正确配置这些策略,将有助于提高程序的稳定性和...

    hibernate映射主键生成策略native

    ### Hibernate映射主键生成策略native #### 一、引言 在ORM(对象关系映射)技术中,Hibernate作为一款流行的Java持久层框架,在处理数据持久化方面提供了丰富的功能和灵活性。其中,主键生成策略是Hibernate配置...

    hibernate 主键一对一映射(单向) 实例(java类)

    通过以上步骤,我们就可以在Hibernate中实现单向一对一主键映射。这个实例中的`hibernate_fifth_one2one_pk_1`文件可能包含了相关的代码示例或测试用例,供你参考和学习。理解并掌握一对一映射是提高Hibernate使用...

    Hibernate一对多主键关联映射源代码

    在Java的持久化框架Hibernate中,一对多关系(OneToMany)是一种常见的对象关系映射(ORM)映射方式,它模拟了数据库中一个表的一条记录与另一表的多条记录之间的关联。本教程通过源代码的形式,讲解如何在Hibernate...

    hibernate复合主键映射

    本篇文章将深入探讨Hibernate如何处理复合主键映射,并通过实例进行解析。 复合主键在数据库设计中是常见的,例如,考虑一个订单明细表,其中订单号(order_id)和商品编号(product_id)结合在一起可以唯一识别一...

    Hibernate双向一对一关联映射(注解版)

    本主题聚焦于“Hibernate双向一对一关联映射”的注解实现,这是一种高级的数据库设计模式,用于处理两个实体之间一对一的关系。 在Hibernate中,一对一关联映射分为单向和双向。单向一对一映射通常涉及一个实体持有...

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

    在Java的持久化框架Hibernate中,一对一(OneToOne)关系是一种常见的对象关系映射(ORM)配置,用于表示两个实体类之间的一种唯一关联。在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来...

    hibernate主键一对一关联映射代码示例

    本示例将深入讲解如何在Hibernate中实现主键一对一关联映射,并通过代码示例进行解析。 一对一关联意味着在一个实体中,每个实例都唯一对应另一个实体的实例。这种关联可以通过共享主键(primary key)或外键...

    Hibernate注解映射联合主键

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

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

    在Java的持久化框架中,Hibernate是一个非常常用且强大的ORM(对象关系映射)工具,它使得开发者可以方便地将数据库操作转化为面向对象的方式。在实际的项目开发中,我们经常遇到各种各样的关联关系,比如一对一、一...

    Hibernate 一对一关联映射(主键关联VS唯一外键关联)

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系数据库模型。这篇文章将深入探讨两种主要的一对一关联映射方式:主键关联(Primary Key Join)和唯一外键关联(Foreign Key Join)。我们...

    Hibernate教程07_关系映射之一对一双向主键关联

    在本教程中,我们将深入探讨Hibernate中的一个关键概念——关系映射,特别是“一对一双向主键关联”。这种关联类型是数据库设计中的常见模式,它允许两个实体类之间通过共享相同的主键来建立关联。在Java应用中,...

Global site tag (gtag.js) - Google Analytics