Java 查询计算与编程计算
我正在使用Hibernate作为ORM进行JavaEE项目,我已经到了一个阶段,我必须对我的类执行一些数学计算,比如求和、计数、加法和除法 我有两种解决方案:Java 查询计算与编程计算,java,database,hibernate,database-performance,Java,Database,Hibernate,Database Performance,我正在使用Hibernate作为ORM进行JavaEE项目,我已经到了一个阶段,我必须对我的类执行一些数学计算,比如求和、计数、加法和除法 我有两种解决方案: 选择类并在代码中以编程方式应用这些操作 对命名查询执行计算的步骤 我想在性能和速度方面讨好你,哪一个更好 谢谢这些是对实体(或数据)的计算吗?如果是,那么您确实可以进行查询(或者更快,使用sql查询iso hql)。从性能的角度来看,在我看来,存储过程非常出色,但人们在hibernate中使用它们的频率不高 此外,如果您有一些频繁的重复计
谢谢这些是对实体(或数据)的计算吗?如果是,那么您确实可以进行查询(或者更快,使用sql查询iso hql)。从性能的角度来看,在我看来,存储过程非常出色,但人们在hibernate中使用它们的频率不高
此外,如果您有一些频繁的重复计算,请尝试在应用程序中使用缓存。如果要在同一事务中从数据库加载要进行聚合的相同实体,则使用Java进行计算时,性能会更好。 它为您节省了一次往返数据库的时间,因为在这种情况下,您的内存中已经有了实体。 其他好处包括:
- 更容易对计算进行单元测试,因为您可以坚持使用基于Java的单元测试框架
- 用一种语言保存逻辑
- 也适用于尚未持久化的实体集合
如果您的映射需要每个实体进行额外的查询,那么Hibernate将为每个实体至少提供一次到数据库的额外往返,在这种情况下,在数据库上用SQL计算东西的性能优势将更大。我相信测试和决定这两者都很简单。你有一些性能测试数据吗?我的类太大太复杂了,测试两种方法都不是那么容易(需要很多时间),所以我宁愿在这里问,希望在我尝试测试之前找到答案。我自己的大而复杂的类闻起来很难闻。首先解决它们:-p检查这个:是那些关于实体的计算,比如属性的加法和乘法。回答Erwin,这就是我一直在寻找的,谢谢:)