【发布时间】:2021-10-05 18:32:34
【问题描述】:
我正在使用 Spring Data JPA,我正在尝试创建 4 个不同的实体,它们具有完全相同的字段,但它们将存储在 4 个不同的表中。
这是我的关键课程
public class IndexId implements Serializable {
private int seqNo;
private String index;
// getters and setters
}
然后我有了基类:
@MappedSuperclass
public class BaseIndex {
@Id
@Column(name = "seq_no", nullable = false)
protected int seqNo;
@Id
@Column(name = "index", nullable = false)
protected String index;
@Column(name = "value", nullable = false)
protected String value;
//getters/setters
}
然后我的实体将存储在数据库中:
@Entity
@IdClass(IndexId.class)
@Table(name = "bibliographic_single_index")
public class BibliographicSingleIndex extends BaseIndex implements Serializable { }
这是我得到的错误:Persistent entity 'BibliographicSingleIndex' should have primary key。
我还尝试使用声明为private 的属性,我在这个主题上看到的articles 似乎做同样的事情。
通过这些代码可以识别出我做错了什么吗?
【问题讨论】:
-
您的@Id 字段上方不应该有类似@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "some_gen") 的东西吗?
-
@MrFisherman 我试过了,但事实并非如此。另外,我为此设置了 IndexId。
标签: java hibernate spring-data-jpa