Java 如何仅获取与JPA中的其他两个表具有@OneToMany关系的父记录
我有3个实体 1.)检查表 2)任务 3)过程 但输出也包含子表记录。使用JPQL:Java 如何仅获取与JPA中的其他两个表具有@OneToMany关系的父记录,java,mysql,hibernate,jpa,Java,Mysql,Hibernate,Jpa,我有3个实体 1.)检查表 2)任务 3)过程 但输出也包含子表记录。使用JPQL: select c from checklistEntity c where class = checklistEntity PS Java中的一般惯例是类名应该以大写字母开头。可能不是这样 您是否看到了hibernate(我想是…)日志,并看到这两个表正在获取 对于那些@OneToMany Relationship,您表示希望进行懒散的获取。 这意味着,如果你有这样的物体,是的 Checklist() {
select c from checklistEntity c where class = checklistEntity
PS Java中的一般惯例是类名应该以大写字母开头。可能不是这样
您是否看到了hibernate(我想是…)日志,并看到这两个表正在获取
对于那些@OneToMany Relationship,您表示希望进行懒散的获取。
这意味着,如果你有这样的物体,是的
Checklist() {
List<Task> tasks .....
Process process....
....
}
我知道很难确定惟一的清单是fetch,因为如果您想观察这些值,它们不再是null:D,但这个懒散的fetch意味着什么
我想这是应有的表现吧?如果是这样的话,如果您永远不会查看此函数中的任务和流程,这是可以的(或者如果您只查看其中的一小部分),但是如果您查看所有或几乎所有的任务和流程,则比以前加载的任务和流程更好。(使用EGER)
希望它能有所帮助为什么我们对不必要地使用本机查询感兴趣,而同样的事情也可以通过JPQL/Criteria API实现?
select c from checklistEntity c where class = checklistEntity
Checklist() {
List<Task> tasks .....
Process process....
....
}
checklistEntity.selectAll
Checklist c = // one of those Checklist fetch with this function.
// c.tasks is empty
// c.process is empty
List<Task> list = c.getTasks();
// list is not empty, in this line fetch for tasks is made
Process p = c.getProcess();
// p is not empty, in this line fetch for process is made.