映射集合映射使用JPA注解 [英] Mapping a map collection with JPA annotations

查看:216
本文介绍了映射集合映射使用JPA注解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好
我用迁移从XML休眠到JPA注释的应用程序。
目前,我被困在绘制地图的对象使用复合标识注解
这是怎么我试图做到这一点。

 A级
{
  ...
  @OneToMany()
  @JoinColumn(NAME =A_ID)
  / * B_ID应该在此映射中的关键* /
  私人地图=新的HashMap();
}B类
{
  @EmbeddedId
  私人CompoundId ID;
}@Embeddable
类CompoundId
{
  @Column(NAME =A_ID)
  串援助;  @Column(NAME =B_ID)
  长BID
}

我也试过

  @OneToMany()
@JoinColumn(NAME =A_ID,插入=假,可更新= FALSE)
@MapKeyColumn(NAME =B_ID)
私人地图=新的HashMap();值java.sql.SQLException:ORA-00904:所致。B1 _,ID:无效的标识符

没有运气

在XML映射它看起来像这样

 <地图名称=地图逆=真级联=全删除,孤儿为lazy =false的>
<密钥GT;
    <列名=A_ID/>
< /键><地图键式=长栏=B_ID/>
&下;一对许多类=B/>
< /图>

休眠3.2.7.ga和注释3.4.0.GA

THX!


解决方案

  @OneToMany()
@JoinColumn(NAME =A_ID,插入=假,可更新= FALSE)
@MapKeyColumn(NAME =B_ID)
私人地图=新的HashMap();

做的工作,这个问题似乎是在B级的复合标识

的映射

干杯

Hi guys I am migrating an application using hibernate from xml to JPA annotations. Currently I am stuck on mapping a map of objects with compound id using annotations This is how am trying to do it.



class A
{
  ...
  @OneToMany()
  @JoinColumn(name="A_ID")
  /*   B_ID should be the key in this map */
  private Map map = new HashMap();
}

class B
{
  @EmbeddedId
  private CompoundId id;
}

@Embeddable
class CompoundId
{
  @Column(name = "A_ID")
  String aId;

  @Column(name = "B_ID")
  long bId
}

I have also tried

@OneToMany()
@JoinColumn(name="A_ID", insertable=false, updatable=false)
@MapKeyColumn(name="B_ID")
private Map map = new HashMap();

Caused by: java.sql.SQLException: ORA-00904: "B1_"."ID": invalid identifier             

with no luck

in mapping XML it looks like this

<map name="map" inverse="true" cascade="all-delete-orphan" lazy="false">
<key>
    <column name="A_ID" />
</key>

<map-key type="long" column="B_ID"/>
<one-to-many class="B" />
</map>

hibernate 3.2.7.ga and annotations 3.4.0.GA

thx !

解决方案

@OneToMany()
@JoinColumn(name="A_ID", insertable=false, updatable=false)
@MapKeyColumn(name="B_ID")
private Map map = new HashMap();

did work, the problem appeared to be in mapping of composite id of B class

Cheers

这篇关于映射集合映射使用JPA注解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆