我的实体课程是:
@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不会删除关系表中的记录吗?
答案 0 :(得分:0)
“延迟加载”表示只有在您第一次实际访问实体时才会加载实体。
当你这样做时
<script type="text/javascript">
function findTotal(){
var ntot = 0
var a = $("input:radio[name ='ur']:checked").val();
var b = $("input:radio[name ='haem']:checked").val();
var c = $("input:radio[name ='haew']:checked").val();
var d = $("input:radio[name ='syb']:checked").val();
var e = $("input:radio[name ='orm']:checked").val();
var tot= ntot + a + b + c + d + e;
document.getElementById('total').value = tot;
}
</script>
所以你要清空空列表,之后当你使用它时会调用来自数据库的数据。
答案 1 :(得分:0)
如果你这样做
User user = em.getByid(11);
user.getRQualityUserList().clear();
打开持久化上下文并在事务内部,Hibernate应该删除记录。
如果您没有交易,则应使用它。
如果您使用封闭的持久性上下文执行clear()
,则应更新user
以删除记录。