Есть ли способ сделать двунаправленные отношения с наследованием сущностей. Объединены в JPA со значением дискриминатора? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть ValuedCustomer и 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(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;
}

1 Ответ

0 голосов
/ 07 июня 2019

Это просто. Важным является атрибут mappedBy в @OneToMany, который указывает, что управление недвижимостью управляется сущностью 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;


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...