让管理系统休眠

Leave management system hibernate

我有一个项目,我使用 hibernate 和 javafx,我对休假管理系统有疑问。

如何在不计算 hql 中的假期的情况下获得某人的具体天数?

我有两个 table:

table "Conge ":

integer id,
integer nombre_jour,
LocalDate date_debut,
LocalDate date_fin,
String type,
Personnel personnel

table "Personnel":

Integer id,
String nom,
String prenom,
String cin,
String nb_jours_par_annee,
LocalDate date_embauche; 

查询:

query:select sum(C.nombre_jour) from 
Conge C 
where C.date_debut=:date_debut 
    and C.date_fin=:date_fin 
    and C.id_personnel=:id

但是我怎样才能得到某人在不计算假期的情况下度过的天数呢?

在休假管理软件中,您通常可以在一个地方定义被视为不可工作的日历。

请务必注意,您可能需要支持定义多个日历配置,这些配置取决于不同的标准,例如员工的部门、他们的工作分配、and/or 他们的位置。例如,在美国工作的办公室工作人员与在同一部门工作但在德国工作的员工有不同的假期豁免计划。

你的计算基本就变成了

NumberOfDays( end - start ) - NumberOfHolidaysInclusive( empId, start, end )

思路同NumberOfDays如果很简单,计算两个日期之间的天数。 NumberOfHolidaysInclusive 的想法是根据员工 ID 查找适当的日历,empId 并根据该日历获取日期范围内的排除数量,包括开始日期和结束日期(例如,包括开始日期和结束日期)。

你如何在 HQL/JPQL/SQL 中编写它很大程度上取决于你的架构,但前提保持不变。