java - 使用 Hibernate 加入没有 PK 的旧表

标签 java hibernate jpa

我有 2 个旧表:

CREATE TABLE A (
    ID NUMBER PRIMARY KEY , 
    DATA NUMBER
)

CREATE TABLE A_CONF (
    A_ID NUMBER,    // FK to A
    INFO VARCHAR2(256)
)

A 创建 JPA 实体非常简单。然而,由于 A_CONF 中没有 PK,因此我该如何检索可与 A 实例关联的多个 INFO 字段无法为其创建实体?

感谢您的帮助。

最佳答案

似乎您正在寻找 JPA 所谓的“元素集合”:

@Entity
public class A {
    @Id
    private Long id;
    private Long data;

    @ElementCollection
    @CollectionTable(name="A_CONF", joinColumns=@JoinColumn(name="A_ID")) // A_ID would be the default join column
    @Column(name="INFO")
    private Set<String> infos; // using Set assuming unique values
}

关于java - 使用 Hibernate 加入没有 PK 的旧表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10817842/

相关文章:

java - JPA 如何获取 Criteria API 中使用的参数标记的数量?

java - 这种位操作在 Java 中如何工作?

java - 部署 Spring Boot 1.3.2 IBM WAS 8.5

java - 使用 HQL 查询插入

java - 具有 native 查询的存储库在测试环境中失败 - postgres、jpa、spring

java - 如何使用 MusicKit SDK for Android 播放歌曲

java - Hibernate Criteria API 中 Restrictions.like 和 .ilike 的区别

java - 无法在mysql中使用spring data jpa创建表

java - org.hibernate.mapping.JoinedSubclass 无法转换为 org.hibernate.mapping.RootClass

Spring Boot Controller 测试: mocking service requiring downstream objects causing ApplicationContext to not load