我有以下实体
员工:id,empId,fname,lastName,年龄
EmployeeAttendence:id,Empid(FK),日期,subjectId(FK),wasPresent
主题:id,subjectName
需要查询: -对于30至40岁之间的所有雇员,请查找其在d1和d2之间是否存在(对于subjectId = 5)。 如果员工不在场,则记录必须存在,但考勤记录为空
将JPA用于此类事情是否有价值?还是我应该使用普通的SQL。
答案 0 :(得分:0)
我认为您对为什么JPA有用感到有些困惑。
从JPA获得的好处是您将拥有许多功能,这些功能将帮助您修改数据。您将获得并发控制选项(显式锁定/隐式锁定/乐观/悲观锁定),脏检查机制,缓存,动态更新,透明的JDBC批处理等等。
用于读取数据,您当然可以使用您的实体,但这仅适用于简单的用例。如果从您的角度考虑性能和更复杂的查询,那么您可以选择使用JPQL,如果无法使用,则使用本机SQL。 为了阅读,我更喜欢使用DTO投影,因为与使用纯图元相比,它会对性能产生巨大影响。
更多阅读:
https://blog.arnoldgalovics.com/using-projections-in-your-data-access-layer/ https://blog.arnoldgalovics.com/how-much-projections-can-help/