2017-10-17 67 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。