java jpa 字段 关联_jpaQuery中查询字段是关联表的查询方法以及@JoinEntity(joinEntityAlias =str)的作用和代码编写的规范...
實體類的參數(shù)
@JoinEntity(joinEntityAlias = T_DeviceMoxing_AlarmRule,...)的作用
課室類
@Entity
public class Classroom {
private int id;
private String name;
...
}
老師類
注意其中的靜態(tài)str
@Entity
public class Teacher {
public static final String T_Classroom = "T_Classroom";
private int id;
private String name;
@JoinEntity(name = "id",joinEntityClass = Classroom.class,joinEntityAlias =T_Classroom)
private int classroomId;
@Transient
@FieldPath(name = "name",joinEntityClass = Classroom.class,joinEntityAlias = T_DeviceMoxing_AlarmRule)
private String classroomIdName;
...
}
查詢實體
注意其中的,joinEntityAlias
@JoinEntity(mainEnityClass = Teacher.class,joinEntityClass = Classroom.class, mainFiledName = "classroomId",name = "id",fieldType = Integer.class)
public class QueryBean {
//根據(jù)課室名模糊查詢
@Like
@FieldPath(joinEntityClass = Classroom.class,name = "name",joinEntityAlias = Teacher.T_Classroom)
private String classroomIdName;
//用到的包
import swallow.framework.jpaquery.repository.annotations.FieldPath;
import swallow.framework.jpaquery.repository.annotations.JoinEntity;
import swallow.framework.jpaquery.repository.annotations.Like;
//根據(jù)課室名稱模糊查詢配備的教師數(shù)量
SELECT count
FROM
Teacher teacher
LEFT JOIN Classroom T_Classroom
WITH T_Classroom .Id = teacher.classroom_id
WHERE T_Classroom.name LIKE ?
如果在查詢實體中的去掉
joinEntityAlias = Teacher.T_Classroom
的話,那么生成的sql就會報錯,找不到Classroom.name字段
SELECT count
FROM
Teacher teacher
LEFT JOIN Classroom T_Classroom
WITH T_Classroom .Id = teacher.classroom_id
WHERE Classroom.name LIKE ?
剛開始使用時覺得joinEntityAlias沒什么用就省略了,覺得很多余,后來才知道原來是這么用的。而且不加會導(dǎo)致級聯(lián)查詢也會有問題,只要會debug這些都好解決
總結(jié)
以上是生活随笔為你收集整理的java jpa 字段 关联_jpaQuery中查询字段是关联表的查询方法以及@JoinEntity(joinEntityAlias =str)的作用和代码编写的规范...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中struts2日期_Strut
- 下一篇: java sync和async区别_GC