我的数据库中有三个表,一个学生,一个班级和一个作业。POJO如下:
Student{
Classe currentClasse;
Set<Assignement> assignements;
}
Classe{
Set<Assignement> assignements;
SchoolYear schoolYear;
}
Assignement{
Classe classe;
Student student;
Boolean pass;
}
基本上,一个学生有一个当前班级,以及一份作业清单(他被分配到的所有班级)。
我的问题是,在hibernate状态下,我想知道所有没有班级(is null
) 或 分配给属于“ 1”学年班级但已pass
设置为true
我设法制定了两个单独的标准来获得我想要的东西:
session.createCriteria(Student.class)
.add(Restrictions.isNull("classeActuelle"))
和
session.createCriteria(Student.class)
.createAlias("assignements", "a")
.add(Restrictions.eq("a.pass", Boolean.TRUE)
.createAlias("a.classe","c")
.add(Restrictions.eq("c.schoolYear", "1"))
但是我不知道如何用or来“统一”这两个条件。
如果要创建包含许多对象的 OR
表达式Criterion
,可以使用的实例org.hibernate.criterion.Disjunction
。使用此对象等效于但比使用多个OR限制更方便。要获取Disjunction
对象,请致电Restrictions.disjunction()
。
如果您需要使用多个对象创建 AND
表达式Criterion
,则可以使用的对象org.hibernate.criterion.Conjunction
。该Restrictions.conjunction()
方法返回一个Conjunction
。
的Disjunction
和Conjunction
类提供add()
分别的方法来施加OR或AND,标准之间。
在您的特定情况下,您可以创建Disjunction
具有两个的外部对象Criterion
:
Student
不上课的人;Conjunction
有两个Criterion
:
Student
分配给的classe
所有物schoolYear
"1"
;Student
那些小号pass
设置true
。以下代码同时使用Disjunction
和Conjunction
对象来构造必要的条件。
Criteria c = session.createCriteria(Student.class)
.createAlias("assignements", "a")
.createAlias("a.classe","c");
Disjunction or = Restrictions.disjunction();
or.add(Restrictions.isNull("classeActuelle"));
Conjunction and = Restrictions.conjunction();
and.add(Restrictions.eq("a.pass", Boolean.TRUE)
and.add(Restrictions.eq("c.schoolYear", "1"))
or.add(and);
c.add(or);
// you can use your criteria c now
我有dsl查询需要返回 国家所有者是词典列表 地区所有者是词典列表 需要检查id在字典中位置 下面的查询返回,但我需要操作
我有点卡住了。这个问题很接近我需要的,但不完全是: [Products_Final]是订单id上带有订单表的联接表 订单表是 诸如此类 所以如果我这样做了 我想要的是基于不同水果和国家组合的的总数,因为Product_id2看起来可能是重复的顺序。 如果我做了区分,总和似乎不起作用。 我如何把这两件事结合在一起?下面的我也试过了但是接不上
我有3个表格:学生,课程(重要领域点),学生课程(重要领域成绩)。 如果成绩大于或等于70,则考试通过,因此学生将获得分数。如果成绩低于70,学生将不会获得分数。如果学生的学分之和大于10,他就毕业了。 我需要选择学生姓名,他的通过分数的总和,他所有成绩的平均值。我可以选择学生姓名,他的通过分数和他通过成绩的平均数之和。但我需要所有成绩的平均值。 我写了下面的查询。
流程开始如下: 组件1发送请求 API对其进行处理,如果一切正确,则写入组件2 dB 各种数据处理... 组件2发送请求 API对其进行处理,如果一切正确,则写入组件1 dB 我怎么做这件Spring靴呢?我不需要任何域类,因此我认为我不需要使用JPA。
问题内容: 条件:请勿修改原始清单;仅JDK,无外部库。一线或JDK 1.3版本的加分点。 有没有比以下更简单的方法: 问题答案: 你可以使用Apache commons-collections库:
我开始使用flink,看看官方教程之一。 据我所知,这个练习的目标是在时间属性上加入两个流。 任务: 此练习的结果是一个Tuple2记录的数据流,每个记录对应一个不同的rideId。您应该忽略结束事件,只在每次骑乘开始时加入事件,并提供相应的票价数据。 生成的流应打印到标准输出。 问:EnrichmentFunction如何连接这两个流aka。它如何知道参加哪个集市和哪个骑行?我希望它能够缓冲多个