如何覆盖JPA实体ID列? [英] How to override a JPA entity id column?

查看:284
本文介绍了如何覆盖JPA实体ID列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对所有实体都使用基本实体类.它映射到包含所有实体共享的列的表.

I use a base entity class for all my entities. It maps to a table that contains columns shared by all entities.

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="entpcd",   discriminatorType=DiscriminatorType.STRING)
@Table(name="enrg")
public abstract class BaseEntity

@Id
@Column(name="enid")
private String entityId=null;

我有一个表示Person的实体类,该实体类映射到其自己的表.

And I have an entity class that represents a Person, mapped to its own table.

@Entity
@DiscriminatorValue("PN")
@Table(name="pn")
public class Person extends BaseEntity

ENRG表结构

enid, col2, col3

PN表结构

pnid, col2 col3

在检索Person时,Hibernate尝试在enrg.enid=pn.enid上进行联接失败.如何在Person中覆盖id映射以在enrg.enid=pn.pnid上加入Hibernate?

While retrieving a Person, Hibernate fails trying to do a join on enrg.enid=pn.enid. How do I override id mapping in Person to have Hibernate join on enrg.enid=pn.pnid?

推荐答案

@PrimaryKeyJoinColumn(name="pnid")解决了该问题.

根据我的阅读,Hibernate在id列上出现@AttributeOverride的问题.更多-> https://forum.hibernate.org/viewtopic.php? f = 1& t = 990510

From what I'm reading, Hibernate is having issues with @AttributeOverride on id columns. More -> https://forum.hibernate.org/viewtopic.php?f=1&t=990510

这篇关于如何覆盖JPA实体ID列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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