【问题标题】:How to map entities B on entities A using a Varchar column on table B?如何使用表 B 上的 Varchar 列将实体 B 映射到实体 A?
【发布时间】:2021-08-24 11:53:33
【问题描述】:

我在无法解决的 JPA 场景中遇到了一些困难。我在 Stackoverflow 上搜索了一个类似的案例,但没有找到。

我只发现了这个topic,但这不完全是我的情况......

如果它已经存在,对不起。

这是我的情况:

我有两张桌子:

一个:

id label ref_name
1 ARK Bruce
2 HAM Alfred

乙:

id name lastname
1 Bruce Wayne
2 Alfred Pennyworth
3 Bruce Banner

表 B 表示人员列表。 表 A 有一个标签名称,以及一列列出表 B 中具有特定名称的所有人员。

在 Java 中,我有这两个实体:

public class B {

   private Integer id;

   private String name;

   private String lastname;
}
public class A {

   private Integer id;

   private String label;

   @ManyToMany
   @JoinColumn(name="ref_name", referencedColumnName="name")
   private List<B> persons;
}

所以,我已经尝试过这段代码,但我收到以下错误消息:

错误:关系“A_persons”不存在

我不知道这有什么问题......

感谢您的帮助!

【问题讨论】:

    标签: java postgresql hibernate jpa hibernate-mapping


    【解决方案1】:

    通过观察您对多对多映射的使用,我猜您正在尝试在不使用“联结表”的情况下进行多对多映射。我发现这个 Stackoverflow 答案显示了如何做到这一点。你怎么看? https://stackoverflow.com/a/25018992

    public class A {
        private Integer id;
        private String label;
        @OneToMany
        @JoinColumn(name="ref_name",
            referencedColumnName="name")
        private List<B> persons;
    }
    

    【讨论】:

    • 您好,我有以下问题:org.hibernate.MappingException: Unable to find column with logical name.
    • @Apodeus,你能提供更完整的错误句子吗?与Unable to find column with logical name: zzz in org.hibernate.mapping.Table(yyy) and its related supertables and secondary tables 一样,值zzzyyy?
    猜你喜欢
    • 2017-05-25
    • 1970-01-01
    • 2021-04-01
    • 2015-12-08
    • 2021-11-23
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多