java - 有没有办法在 JPA 中使用鉴别器值与实体继承建立双向关系?

标签 java jpa inheritance entity joined-subclass

我有一个尊贵的客户和订单,我想在 hibernate 状态下建立双向关系。我该怎么做呢?谢谢

@Entity
@Table(name="VCUST")
@DiscriminatorValue("VCUST")
@PrimaryKeyJoinColumns({
    @PrimaryKeyJoinColumn(name="CUST_ID",referencedColumnName="ID"),
    @PrimaryKeyJoinColumn(name="CUST_TYPE",referencedColumnName="TYPE")
})
public class ValuedCustomer extends Customer { 

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL,orphanRemoval = true)

    @JoinColumn(name = "customer_order", nullable = true)

    private Set<Order> orders = new HashSet<>();

}


@Entity
@Table(name=“Order”)
public class Order { 

@Id
private int id;
}

最佳答案

这很容易。重要的是@OneToMany 中的mappedBy 属性,它指示该关系由Order 实体管理。

@Entity
@Table(name="VCUST")
@DiscriminatorValue("VCUST")
@PrimaryKeyJoinColumns({
    @PrimaryKeyJoinColumn(name="CUST_ID",referencedColumnName="ID"),
    @PrimaryKeyJoinColumn(name="CUST_TYPE",referencedColumnName="TYPE")
})
public class ValuedCustomer extends Customer { 

   @OneToMany(mappedBy= 'valuedCustomer" fetch = FetchType.LAZY, cascade = CascadeType.ALL,orphanRemoval = true)
   private Set<Order> orders = new HashSet<>();

}

@Entity
@Table(name=“Order”)
public class Order { 

   @Id
   private int id;

   @ManyToOne
   private ValuedCustomer valuedCustomer;


}

关于java - 有没有办法在 JPA 中使用鉴别器值与实体继承建立双向关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56485885/

相关文章:

java - 如何在 JPA/Hibernate 映射中对以下模型进行建模

java - thymeleaf 和 spring boot 应用程序中未显示表单验证错误

c++ - 访问子类 C++ 的属性/函数

inheritance - F# 4.0 继承引发 FS0073 内部错误 : the mustinline value 'Foo' was not inferred to have a known value

php - 如何从扩展 PHP 类中的静态调用中获取类名?

java - GWT 开发和设计模式

java - java比较和排序

java - 使用哪个免费的 LDAP 服务器?

java - 通过基类传递的变量未给出其父类的 IllegalArgumentException

java - Spring数据jpa中save和saveAndFlush的区别