如果这是一个糟糕的问题,我很抱歉,但我想知道POJO是否可以让getter返回JPQL查询结果?在构造函数中进行赋值是不是更好的做法?
public Long getCount() {
Long count = 0L;
if (date != null) {
count = (Long) entityManager.createNamedQuery(query)
.setParameter(1, someCriteria.getId())
.setParameter(2, someDate)
.getSingleResult();
} else {
count = (Long) entityManager.createNamedQuery(query)
.setParameter(1, someCriteria.getId())
.getSingleResult();
}
return count;
}发布于 2017-07-03 16:57:21
不,一般来说,我个人认为让getters方法执行甚至复杂的操作都不是一种坏的做法。这与信息隐藏和复杂性隐藏有关。调用者只需调用“getThat()”,操作背后的复杂性对调用者是完全隐藏的。
不同的考虑因素是性能和效率。如果getter执行的操作代价很高,您应该考虑一些优化策略。根据具体情况,您可以将结果存储在本地变量、本地DB中,或者应用其他类型的策略,以避免每次调用getter时都重新计算结果。这一切都取决于结果的含义、结果更改的速度以及应用程序获取最新值的重要性。
https://stackoverflow.com/questions/44881136
复制相似问题