【问题标题】:Hibernate @OneToMany mapping is giving exception,Hibernate @OneToMany 映射给出异常,
【发布时间】:2020-04-01 01:40:12
【问题描述】:

你能帮我看看这是怎么回事吗?

@Entity
@Table(name = "vendor_po")
public class VendorPO {
    @Id
    @Column(name = "vendor_po_id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long vendor_po_id;

    @OneToMany(orphanRemoval = false, cascade = { CascadeType.DETACH, CascadeType.MERGE, 
    CascadeType.CascadeType.PERSIST, CascadeType.REFRESH })
    private List<PaymentMethods> payments = new ArrayList<PaymentMethods>();
}

我遇到了这个异常。

java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '2706' for key 'UK_8490nkhe03w8piq2nitrma5ok'
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117) ~[mysql-connector-java-8.0.18.jar:8.0.18]
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.18.jar:8.0.18]
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.18.jar:8.0.18]

【问题讨论】:

  • 任何帮助将不胜感激。如果问题不清楚,请询问详细信息。

标签: java hibernate spring-boot jpa spring-data-jpa


【解决方案1】:

我的同事帮我解决了这个问题,他说这种情况应该使用 ManyToMany 映射。

@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
    @JoinTable(name = "vendorpo_payment", joinColumns = @JoinColumn(name = "vendor_po_id"), inverseJoinColumns = @JoinColumn(name = "payment_id"))
    private List<PaymentMethods> payments = new ArrayList<PaymentMethods>(); 

【讨论】:

    猜你喜欢
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 2012-02-08
    • 2019-02-24
    相关资源
    最近更新 更多