我的实体类是:
@Entity
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(unique = true, nullable = false)
private Long id;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "dt_creation", nullable = false)
private Date dtCreation;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "dt_maj", nullable = false)
private Date dtMaj;
// bi-directional many-to-one
@OneToMany(mappedBy = "quality", cascade = CascadeType.ALL, orphanRemoval = true)
private Set<RQulityUser> RQualityUser;
@Entity
public class RQualityUser implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "dt_creation", nullable = false)
private Date dtCreation;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "dt_maj", nullable = false)
private Date dtMaj;
// bi-directional many-to-one association to Questionnaire
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "fk_user", updatable = false, nullable = false)
private User user;
// bi-directional many-to-one association to QualitePersonne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "cd_quality_user", updatable = false, nullable = false)
private Quality quality;当我得到一个用户,并且我试图清除RQualityUser列表时,我不工作:
User user = em.getByid(11);
user.getRQualityUserList().clear();Hibernate不删除关系表中的记录吗?
发布于 2016-05-10 10:04:23
“延迟加载”意味着,只有当您第一次实际访问实体时,才会加载实体。
当你做的时候
user.getRQualityUserList() // Still contains nothing.因此,您正在清除空列表,然后当您使用该列表时,将从DB调用数据。
发布于 2016-05-12 08:25:46
如果你这么做
User user = em.getByid(11);
user.getRQualityUserList().clear();对于打开的持久上下文和事务内部,Hibernate应该删除记录。
如果你没有交易,你应该使用它。
如果使用封闭的持久上下文执行clear(),则应更新user以删除记录。
https://stackoverflow.com/questions/37134692
复制相似问题