我的数据库中有三个表,一个学生,一个Classe和一个Assignement.POJO如下:
Student{
Classe currentClasse;
Set<Assignement> assignements;
}
Classe{
Set<Assignement> assignements;
SchoolYear schoolYear;
}
Assignement{
Classe classe;
Student student;
Boolean pass;
}
Run Code Online (Sandbox Code Playgroud)
基本上,学生有一个当前的班级和一个分配清单(他被分配到的所有班级).
我的问题是,在hibernate下,我想知道所有没有classe(is null)OR的学生被分配到属于schoolyear"1"的类但是已经pass设置为true
我设法制作了两个单独的标准来获得我想要的东西:
session.createCriteria(Student.class)
.add(Restrictions.isNull("classeActuelle"))
Run Code Online (Sandbox Code Playgroud)
和
session.createCriteria(Student.class)
.createAlias("assignements", "a")
.add(Restrictions.eq("a.pass", Boolean.TRUE)
.createAlias("a.classe","c")
.add(Restrictions.eq("c.schoolYear", "1"))
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将这两个标准"联合"起来或......
我在 MongoDB 中有一些文档,其中有其他嵌套文档都带有“活动”字段。例如 :
{
"id": "PRODUCT1",
"name": "Product 1",
"active": true,
"categories": [
{
"id": "CAT-1",
"active": true,
"subcategories": [
{
"id": "SUBCAT-1",
"active": false
},
{
"id": "SUBCAT-2",
"active": true
}
]
},
{
"id": "CAT-2",
"active": false,
"subcategories": [
{
"id": "SUBCAT-3",
"active": true
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
有没有办法找到所有文档但只保留“活动”嵌套文档。
这是我想要的结果:
{
"id": "PRODUCT1",
"name": "Product 1",
"active": true,
"categories": [
{
"id": "CAT-1",
"active": true,
"subcategories": [
{
"id": "SUBCAT-2",
"active": true
}
]
}
] …Run Code Online (Sandbox Code Playgroud)