Hibernate JSF将对象保存到数据库,而不告诉用户这样做
我正在使用JSF2.2和Hibernate4.3.1 我有这门课Hibernate JSF将对象保存到数据库,而不告诉用户这样做,hibernate,persistence,Hibernate,Persistence,我正在使用JSF2.2和Hibernate4.3.1 我有这门课 @Named @RequestScoped public class StudentController{ private StudentUtil studentUtil = new StudentUtil(); public List<Student> getStudents(){ return studentUtil.getAllStudents(); } pu
@Named
@RequestScoped
public class StudentController{
private StudentUtil studentUtil = new StudentUtil();
public List<Student> getStudents(){
return studentUtil.getAllStudents();
}
public void verify(Student student){
student.setVerified(true);
}
}
@Named
@请求范围
公共班级学生控制员{
private StudentUtil StudentUtil=new StudentUtil();
公众学生名单{
return studentUtil.getAllStudents();
}
公共无效验证(学生){
student.setVerified(true);
}
}
StudentUtil是我的Hibarnate实用程序类。它获取数据库中学生表中的所有行。在XHTML页面中,我在一个数据表中列出了所有学生
<h:dataTable value="#{studentController.students}"
var="student">
...
<h:column>
<h:form>
<h:commandButton value="Verify"
action="#{studentController.verify(student)}/>
</form>
</h:column>
</h:dataTable>
...
我认为您正在使用附加实体。在这种情况下,任何实体更改都将触发数据库更新
如果您将EJB用作StudentUtil的服务,则所有加载的实体都将自动分离。否则你必须自己拆下它们。这是一个相当复杂的问题。阅读有关托管和分离实体/对象的更多信息。很抱歉使用错误的标记发布。我想我的对象一直处于管理状态,因为我没有在查询后关闭会话。我使用了openSession()