Ebean支持多线程吗?

时间:2016-02-28 23:14:19

标签: java multithreading asynchronous orm ebean

Ebean ORM是Play的首选ORM! Java框架。 当我在构建自己的对象关系映射器和其他对象关系行为模式以及使用ORM之间做出选择时,一个让我觉得非常重要的标准是Ebeans是否支持对映射器的并发访问。 确实,虽然玩!使用异步线程时,仍然可能存在由使用相同对象的并发请求引起的读取器/写入器问题。

因此问题是,Ebean ORM是否支持多线程(读写器问题)?

1 个答案:

答案 0 :(得分:4)

  

Ebeans支持对映射器的并发访问

EbeanServer对于多个并发使用是安全的。构建了EbeanServer实例,其中包含有关bean属性等的所有元数据(因此映射信息)。

EbeanServer内部保存一些变异数据,例如L2缓存,查询执行的性能指标,查询执行计划等,但这些数据都是线程安全的。

通常,查询对象和查询结果(对象图)不是线程安全的,仅供单线程使用。您可以创建无法变异的只读对象图,因此通过query.setReadOnly(true)可以安全地使用多线程。

EbeanServer还支持通过findFutureRowCount(),findFutureList()等进行后台获取,后者在内部制作查询副本并负责细节。 findFutureRowCount()在内部用作PagedList的一部分来获取总行数。