如何将条件置于休眠状态

时间:2014-07-25 10:51:14

标签: hibernate hibernate-mapping

我有两个Class.College和Student,如下所示

Class College{
int id;

@OneToMany(fetch = FetchType.EAGER, cascade = { CascadeType.ALL })
@Fetch(value = FetchMode.SELECT)
@JoinColumn(name = "ID")
List<Student> std;

public void isElligible(){
// Some code here
}

}

我将这两个对象持久化到相应的表。现在我想只有当isElligible返回true时才将数据保存到STUDENT表。我怎么能把这个条件? 我可以使用过滤器吗?

1 个答案:

答案 0 :(得分:0)

首先,你的映射对我来说似乎有些偏差。也许它应该是这样的:

class College {
  // ...
  @OneToMany(mappedBy="college")
  List<Student> students;
  // ...
}

class Student {
  // ...
  @ManyToOne(columnName="college_id", ...)
  College college;
  // ...
}

其次,关于学生的条件性持久性,应该在持久层(或业务逻辑层,如果有的话)中处理,而不是模型层(基础实体的定义)。