java - @ManyToOne 不会将父键列保留在子表中

标签 java xml hibernate spring-batch

下面的联接保留了与每个客户端相关的 TaxJurisdictions,但它不包括插入中联接 (CLIENT_CODE) 中使用的列,导致我的数据库表 TBL_TAX_JURISDICTION.CLIENT_CODE 中为空。如何更改此设置以便保留客户端代码及其税务管辖区?

@Entity
@Table(name = "TBL_TAX_JURISDICTION")
@XmlRootElement(name="taxJurisdiction")
@XmlAccessorType(XmlAccessType.FIELD)
public class TaxJurisdiction {

    @ManyToOne(fetch = FetchType.LAZY, cascade=CascadeType.ALL )
    @JoinColumn(name="CLIENT_CODE", nullable = false, updatable = false, insertable = true)
    private Clients clients;

    @Id
    @GeneratedValue(generator = "UUID")
    @GenericGenerator(
            name = "UUID",
            strategy = "org.hibernate.id.UUIDGenerator"
    )
    @Column(name = "ID")
    private String Id;
....
}
@Entity
@Table(name = "TBL_CLIENTS")
@XmlRootElement(name = "client")
@XmlAccessorType(XmlAccessType.FIELD)
public class Clients extends Feed {

    @XmlElementWrapper(name="taxJurisdictions")
    @XmlElement(name="taxJurisdiction")
    @OneToMany(mappedBy = "clients", cascade=CascadeType.ALL)
    private List<TaxJurisdiction> taxJurisdictions = new ArrayList<>();


    @Id
    @Column
    @XmlElement(name = "CLIENT_CODE")
    private String CLIENT_CODE;

    public List<TaxJurisdiction> getTaxJurisdictions() {
        return new ArrayList<>(taxJurisdictions);
    }

    .....
}

最佳答案

TaxJurisdiction 中删除 cascade=CascadeType.ALL。您不应将 TaxJurisdiction 上的任何操作级联到客户端。另外,如果你真的不需要它来偷懒,也可以删除 fetch 。以下代码在我的测试中运行良好

@ManyToOne
@JoinColumn(name="CLIENT_CODE", nullable = false, updatable = false, insertable = true)
private Clients clients;

关于java - @ManyToOne 不会将父键列保留在子表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58701716/

相关文章:

Java swing,无法让文本字段按预期显示

spring - 找到对多对多关系集合的共享引用

java - Intellij IDEA 2016.1.3 JAVA语句被删除

java - 尝试在控制台中运行 java 程序将给出无法找到或加载主类错误

java - 应用程序意外停止错误

android - 如何更改微调器中的文本颜色?

xml - 删除 XML 节点以将 XML 日志文件的大小减小到给定大小

java - 将 Spring 3.1 项目更新为 hibernate4 现在找不到当前线程的 session

hibernate - JPA、 hibernate : Persist through multiple levels

java - 骰子在一根绳子上滚动