Spring和Hibernate:如何声明加入到复合键(使用说明)? [英] Spring and Hibernate : how to declare a join to composite key (using annotations)?

查看:138
本文介绍了Spring和Hibernate:如何声明加入到复合键(使用说明)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要参加我的项目的最新版本号表Project_version。
我怎样注释@JoinColumn声明它,等等?

我的表项目

  * PROJECT_ID
  标题
  ...
  LastVersion_id

我的表 Project_version (主键= PROJECT_ID + VERSION_ID

  * PROJECT_ID
* VERSION_ID
  DateCreat
  ...

我的豆项目:我需要声明属性 LastVersion_id 加入Project_version:

  @Id
私人整数PROJECT_ID;
私人字符串名称
...
@ManyToOne(取= FetchType.EAGER)
@JoinColumn(NAME =LastVersion_id)
                    //如何申报加盟(PROJECT_ID + VERSION_ID)?
私人Project_version PV;


解决方案

好吧,我终于找到了答案:

  @Id
私人整数PROJECT_ID;
私人字符串名称;
// ...
@MapsId(PROJECT_ID)
@ManyToOne(取= FetchType.EAGER)
@JoinColumns({
    @JoinColumn(NAME =PROJECT_ID,referencedColumnName =PROJECT_ID),
    @JoinColumn(NAME =LastVersion_id,referencedColumnName =VERSION_ID)
})
私人Project_version PV;

注意 @MapsId 是绝对必需的,否则,你得到了错误在实体映射重复列

I need to join the "last version" number of my Project to the table Project_version. How do I declare it with annotations @JoinColumn, etc ?

My table "Project" :

* Project_id
  Title
  ...
  LastVersion_id

My table "Project_version" (primary key = Project_id + Version_id) :

* Project_id
* Version_id
  DateCreat
  ...

My bean "Project" : I need declare the attribute "LastVersion_id" to join Project_version :

@Id
private Integer Project_id;
private String Title
...
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="LastVersion_id")
                    // How to declare the join to (Project_id + Version_id) ?
private Project_version pv;

解决方案

OK, I finally found the answer :

@Id
private Integer Project_id;
private String Title;
// ...
@MapsId("Project_id")
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumns({
    @JoinColumn(name="Project_id", referencedColumnName="Project_id"),
    @JoinColumn(name="LastVersion_id", referencedColumnName="Version_id")
})
private Project_version pv;

Note that @MapsId is absolutely required, otherwise you got the error "Repeated column in mapping for entity"

这篇关于Spring和Hibernate:如何声明加入到复合键(使用说明)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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