加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何在同一个表中连接多个列?

发布时间:2020-12-15 02:16:26 所属栏目:Java 来源:网络整理
导读:我有2个表“学生”和“选项列表”.选项列表 – 使用它 ???作为州,国家,城市等列表的常用表. 这是学生班: @Entitypublic class Student { @Id Long id; String firstName; String lastName; Long accountId; @OneToOne(fetch=FetchType.EAGER) @JoinColumns(
我有2个表“学生”和“选项列表”.选项列表 – 使用它
???作为州,国家,城市等列表的常用表.

这是学生班:

@Entity
public class Student {
    @Id
    Long id;
    String firstName;
    String lastName;
    Long accountId;

    @OneToOne(fetch=FetchType.EAGER)
    @JoinColumns({@JoinColumn(name="country",referencedColumnName = "name"),@JoinColumn(name="accountId",referencedColumnName = "accountId")}
    )
    PickList country;

    @OneToOne(fetch=FetchType.EAGER)
    @JoinColumns({@JoinColumn(name="state",referencedColumnName = "accountId")}
    )
    PickList state;
}

这是选项列表:

@Entity
@Table(name = "picklist",uniqueConstraints = {
    @UniqueConstraint(columnNames = {"accountId","name"})
})
public class PickList {
    @Id
    long id;

    long accountId;
    String name;
}

错误 –
?引起:org.hibernate.MappingException:实体映射中的重复列:column:accountid(应使用insert =“false”update =“false”映射)

解决方法

消息很明确:映射中有重复的列.这意味着您将相同的数据库列映射了两次.

试着这样做?@JoinColumn(name =“accountId”,referencedColumnName =“accountId”,????????????insertable = false,updatable = false)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读