2017-10-17 27 views
0

我上課的這種結構節能戰略,是一個多對多的關係,當一個表關聯使用

CarElementClasses 
    Integer id 
    @OneToMany(mappedBy = "carElementClass") 
    private List<CarClassJoins> carClassJoins; 

CarClassJoins 
    Integer id 
    @ManyToOne 
    @JoinColumn(name = "car_element_class_id", referencedColumnName="id") 
    private CarElementClasses carElementClass; 

    @ManyToOne 
    @JoinColumn(name = "car_param_id", referencedColumnName="id") 
    private CarParams carParam; 
    private String default; 

CarParams 
    Integer id 
    String name 
    @OneToMany(mappedBy = "carParam") 
    private List<CarClassJoins> carClassJoins; 

CarElementClasses有一個多對多的關係carParams,CarClassJoins是一個表關聯。

當顯示CarElementClasses時,用戶可以修改,刪除CarClassJoins

我不知道如何管理保存,如果用戶添加和刪除值。

從客戶端,

當一個新加入的CarClassJoins id爲null ...但用戶一個要刪除不發送電子郵件。

我需要在CarElementClasses上完成保存。 jpa中是否有策略每次都自動重新創建關係的所有元素?

回答

2

請嘗試以下操作。

CarElementClasses 
    Integer id 
    @OneToMany(mappedBy = "carElementClass", cascade = CascadeType.ALL) 
    private List<CarClassJoins> carClassJoins; 

CarClassJoins 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    Integer id 
    @ManyToOne 
    @JoinColumn(name = "car_element_class_id", referencedColumnName="id") 
    private CarElementClasses carElementClass; 

    @ManyToOne(cascade = CascadeType.ALL) 
    @JoinColumn(name = "car_param_id", referencedColumnName="id") 
    private CarParams carParam; 
    private String default; 

級聯選項會將對實體所做的操作鏈接到相關實體。對於mor信息:https://en.wikibooks.org/wiki/Java_Persistence/Relationships#Cascading

@ID和@GeneratedValue組合將在實體持續存在時生成id。