我有一些ServiceDefinition實體。我試圖創建一系列包含對一個或多個ServiceDefinition實體的引用的License實體;JPA集合映射到主表
@Entity
public class License {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(unique=true, nullable=false)
private int id;
@Column(name="serial")
private int serialNumber;
@OneToMany(cascade=CascadeType.ALL, orphanRemoval=true)
protected List<ServiceDefinition> definitions;
<-- rest of class omitted -->
@Entity
public class ServiceDefinition implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(unique=true, nullable=false)
private int id;
<-- rest of class omitted -->
當數據庫實例JPA創建了我一個服務定義表,許可表和License_ServiceDefinition表。
我已經能夠添加記錄並將其更新到此結構中,但是當我嘗試刪除許可證時,JPA會從License_ServiceDefinition表和許可證表中刪除條目。然後,JPA嘗試從我不想要的ServiceDefinition表中刪除。
ServiceDefinition是一個「Master」表,與OrderHeader實體可能包含對Customer實體的引用的相同方式,並且刪除OrderHeader不應導致刪除Customer,我希望能夠刪除許可證,它是對ServiceDefinition實體的引用,而不刪除ServiceDefinition本身。我希望這是有道理的。
這是可能的還是我需要手動處理。
問候
問候