jpa,多于一个主键

Posted

技术标签:

【中文标题】jpa,多于一个主键【英文标题】:jpa, more then one primary key 【发布时间】:2010-11-23 14:06:04 【问题描述】:

我有一个 Article 实体和一个 ArticleCode 实体。文章代码有文章作为伪造密钥,但也有第二个和第三个主键。

下面的示例是不可能的,因为 Article 不可序列化。有什么想法吗?

谢谢, 拉尔夫

@实体 公开课文章 @ID @GeneratedValue(strategy=GenerationType.TABLE) 私有长id;

public Long getId()  return id; 

@实体 @IdClass(com.google.gwt.sample.stockwatcher.server.huflattich.ArticleCode.ComposedIdKey.class) 公共类文章代码

@Id
@OneToOne
private Article article;

@Id
@Column(name="coding_system")
private String codingSystem;

@Id
private String code;

...

public static class ComposedIdKey implements Serializable 
    public Article article;
    public String codingSystem;
    public String code;

    public ComposedIdKey ()  

    public ComposedIdKey(Article article, String codingSystem, String code) 
        this.article = article;
        this.codingSystem = codingSystem;
        this.code = code;
    

     ...

【问题讨论】:

【参考方案1】:

哦,在 google 的 BigTable 中,不可能有多个主键。

【讨论】:

以上是关于jpa,多于一个主键的主要内容,如果未能解决你的问题,请参考以下文章

JPA:一个带有主键的表和另一个带有主键和外键的表

JPA注解

JPA主键生成策略

JPA注解实现联合主键

组合主键及JPA映射

Spring JPA 主键