Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ehcache不能与hibernate一起工作_Java_Hibernate_Ehcache_Dropwizard - Fatal编程技术网

Java ehcache不能与hibernate一起工作

Java ehcache不能与hibernate一起工作,java,hibernate,ehcache,dropwizard,Java,Hibernate,Ehcache,Dropwizard,我有一个dropwizard应用程序,在数据库的config.yml中配置 这些物业包括: hibernate.show_sql: true javax.persistence.sharedCache.mode: ALL hibernate.cache.default_cache_concurrency_strategy: read-only hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.SingletonE

我有一个dropwizard应用程序,在数据库的
config.yml
中配置

这些物业包括:

hibernate.show_sql: true
javax.persistence.sharedCache.mode: ALL
hibernate.cache.default_cache_concurrency_strategy: read-only
hibernate.cache.region.factory_class: 
org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
hibernate.cache.use_second_level_cache: true
但看来ehcache不起作用了

在日志中,我始终可以看到查询和ehcache日志:

Hibernate: select businessel0_.GD_BUSINESSCODEELEMENT as GD_BUSINESSCODEELE1_3_0_, businessel0_.DBUSERINS as DBUSERINS2_3_0_, businessel0_.DBUSERUPD as DBUSERUPD3_3_0_, businessel0_.INSERTDATE as INSERTDATE4_3_0_, businessel0_.MODIFYDATE as MODIFYDATE5_3_0_, businessel0_.AU_USERIDINS as AU_USERIDINS10_3_0_, businessel0_.AU_USERIDUPD as AU_USERIDUPD11_3_0_, businessel0_.VERSION as VERSION6_3_0_, businessel0_.GD_BUSINESSCODETYPE as GD_BUSINESSCODETY12_3_0_, businessel0_.DATATYPE as DATATYPE7_3_0_, businessel0_.DESCRIPTION as DESCRIPTION8_3_0_, businessel0_.LONGDESC as LONGDESC9_3_0_, businessel0_.MASTER_BUSINESSCODEELEMENT as MASTER_BUSINESSCO13_3_0_, businessty1_.GD_BUSINESSCODETYPE as GD_BUSINESSCODETYP1_5_1_, businessty1_.DBUSERINS as DBUSERINS2_5_1_, businessty1_.DBUSERUPD as DBUSERUPD3_5_1_, businessty1_.INSERTDATE as INSERTDATE4_5_1_, businessty1_.MODIFYDATE as MODIFYDATE5_5_1_, businessty1_.AU_USERIDINS as AU_USERIDINS8_5_1_, businessty1_.AU_USERIDUPD as AU_USERIDUPD9_5_1_, businessty1_.VERSION as VERSION6_5_1_, businessty1_.DESCRIPTION as DESCRIPTION7_5_1_, businessel2_.GD_BUSINESSCODEELEMENT as GD_BUSINESSCODEELE1_3_2_, businessel2_.DBUSERINS as DBUSERINS2_3_2_, businessel2_.DBUSERUPD as DBUSERUPD3_3_2_, businessel2_.INSERTDATE as INSERTDATE4_3_2_, businessel2_.MODIFYDATE as MODIFYDATE5_3_2_, businessel2_.AU_USERIDINS as AU_USERIDINS10_3_2_, businessel2_.AU_USERIDUPD as AU_USERIDUPD11_3_2_, businessel2_.VERSION as VERSION6_3_2_, businessel2_.GD_BUSINESSCODETYPE as GD_BUSINESSCODETY12_3_2_, businessel2_.DATATYPE as DATATYPE7_3_2_, businessel2_.DESCRIPTION as DESCRIPTION8_3_2_, businessel2_.LONGDESC as LONGDESC9_3_2_, businessel2_.MASTER_BUSINESSCODEELEMENT as MASTER_BUSINESSCO13_3_2_ from GD_BUSINESSCODEELEMENT businessel0_ left outer join GD_BUSINESSCODETYPE businessty1_ on businessel0_.GD_BUSINESSCODETYPE=businessty1_.GD_BUSINESSCODETYPE left outer join GD_BUSINESSCODEELEMENT businessel2_ on businessel0_.MASTER_BUSINESSCODEELEMENT=businessel2_.GD_BUSINESSCODEELEMENT where businessel0_.GD_BUSINESSCODEELEMENT=?
2018-03-08 13:11:16,243 DEBUG 99FE394CE00B497699A5A9916B1E9A6A [net.sf.ehcache.store.disk.Segment]: put added 0 on heap
2018-03-08 13:11:16,247 DEBUG 99FE394CE00B497699A5A9916B1E9A6A [net.sf.ehcache.store.disk.Segment]: put added 0 on heap
Hibernate: select businessel0_.GD_BUSINESSCODEELEMENT as GD_BUSINESSCODEELE1_3_0_, businessel0_.DBUSERINS as DBUSERINS2_3_0_, businessel0_.DBUSERUPD as DBUSERUPD3_3_0_, businessel0_.INSERTDATE as INSERTDATE4_3_0_, businessel0_.MODIFYDATE as MODIFYDATE5_3_0_, businessel0_.AU_USERIDINS as AU_USERIDINS10_3_0_, businessel0_.AU_USERIDUPD as AU_USERIDUPD11_3_0_, businessel0_.VERSION as VERSION6_3_0_, businessel0_.GD_BUSINESSCODETYPE as GD_BUSINESSCODETY12_3_0_, businessel0_.DATATYPE as DATATYPE7_3_0_, businessel0_.DESCRIPTION as DESCRIPTION8_3_0_, businessel0_.LONGDESC as LONGDESC9_3_0_, businessel0_.MASTER_BUSINESSCODEELEMENT as MASTER_BUSINESSCO13_3_0_, businessty1_.GD_BUSINESSCODETYPE as GD_BUSINESSCODETYP1_5_1_, businessty1_.DBUSERINS as DBUSERINS2_5_1_, businessty1_.DBUSERUPD as DBUSERUPD3_5_1_, businessty1_.INSERTDATE as INSERTDATE4_5_1_, businessty1_.MODIFYDATE as MODIFYDATE5_5_1_, businessty1_.AU_USERIDINS as AU_USERIDINS8_5_1_, businessty1_.AU_USERIDUPD as AU_USERIDUPD9_5_1_, businessty1_.VERSION as VERSION6_5_1_, businessty1_.DESCRIPTION as DESCRIPTION7_5_1_, businessel2_.GD_BUSINESSCODEELEMENT as GD_BUSINESSCODEELE1_3_2_, businessel2_.DBUSERINS as DBUSERINS2_3_2_, businessel2_.DBUSERUPD as DBUSERUPD3_3_2_, businessel2_.INSERTDATE as INSERTDATE4_3_2_, businessel2_.MODIFYDATE as MODIFYDATE5_3_2_, businessel2_.AU_USERIDINS as AU_USERIDINS10_3_2_, businessel2_.AU_USERIDUPD as AU_USERIDUPD11_3_2_, businessel2_.VERSION as VERSION6_3_2_, businessel2_.GD_BUSINESSCODETYPE as GD_BUSINESSCODETY12_3_2_, businessel2_.DATATYPE as DATATYPE7_3_2_, businessel2_.DESCRIPTION as DESCRIPTION8_3_2_, businessel2_.LONGDESC as LONGDESC9_3_2_, businessel2_.MASTER_BUSINESSCODEELEMENT as MASTER_BUSINESSCO13_3_2_ from GD_BUSINESSCODEELEMENT businessel0_ left outer join GD_BUSINESSCODETYPE businessty1_ on businessel0_.GD_BUSINESSCODETYPE=businessty1_.GD_BUSINESSCODETYPE left outer join GD_BUSINESSCODEELEMENT businessel2_ on businessel0_.MASTER_BUSINESSCODEELEMENT=businessel2_.GD_BUSINESSCODEELEMENT where businessel0_.GD_BUSINESSCODEELEMENT=?
2018-03-08 13:11:16,252 DEBUG 99FE394CE00B497699A5A9916B1E9A6A [net.sf.ehcache.store.disk.Segment]: put added 0 on heap
Hibernate: select businessel0_.GD_BUSINESSCODEELEMENT as GD_BUSINESSCODEELE1_3_0_, businessel0_.DBUSERINS as DBUSERINS2_3_0_, businessel0_.DBUSERUPD as DBUSERUPD3_3_0_, businessel0_.INSERTDATE as INSERTDATE4_3_0_, businessel0_.MODIFYDATE as MODIFYDATE5_3_0_, businessel0_.AU_USERIDINS as AU_USERIDINS10_3_0_, businessel0_.AU_USERIDUPD as AU_USERIDUPD11_3_0_, businessel0_.VERSION as VERSION6_3_0_, businessel0_.GD_BUSINESSCODETYPE as GD_BUSINESSCODETY12_3_0_, businessel0_.DATATYPE as DATATYPE7_3_0_, businessel0_.DESCRIPTION as DESCRIPTION8_3_0_, businessel0_.LONGDESC as LONGDESC9_3_0_, businessel0_.MASTER_BUSINESSCODEELEMENT as MASTER_BUSINESSCO13_3_0_, businessty1_.GD_BUSINESSCODETYPE as GD_BUSINESSCODETYP1_5_1_, businessty1_.DBUSERINS as DBUSERINS2_5_1_, businessty1_.DBUSERUPD as DBUSERUPD3_5_1_, businessty1_.INSERTDATE as INSERTDATE4_5_1_, businessty1_.MODIFYDATE as MODIFYDATE5_5_1_, businessty1_.AU_USERIDINS as AU_USERIDINS8_5_1_, businessty1_.AU_USERIDUPD as AU_USERIDUPD9_5_1_, businessty1_.VERSION as VERSION6_5_1_, businessty1_.DESCRIPTION as DESCRIPTION7_5_1_, businessel2_.GD_BUSINESSCODEELEMENT as GD_BUSINESSCODEELE1_3_2_, businessel2_.DBUSERINS as DBUSERINS2_3_2_, businessel2_.DBUSERUPD as DBUSERUPD3_3_2_, businessel2_.INSERTDATE as INSERTDATE4_3_2_, businessel2_.MODIFYDATE as MODIFYDATE5_3_2_, businessel2_.AU_USERIDINS as AU_USERIDINS10_3_2_, businessel2_.AU_USERIDUPD as AU_USERIDUPD11_3_2_, businessel2_.VERSION as VERSION6_3_2_, businessel2_.GD_BUSINESSCODETYPE as GD_BUSINESSCODETY12_3_2_, businessel2_.DATATYPE as DATATYPE7_3_2_, businessel2_.DESCRIPTION as DESCRIPTION8_3_2_, businessel2_.LONGDESC as LONGDESC9_3_2_, businessel2_.MASTER_BUSINESSCODEELEMENT as MASTER_BUSINESSCO13_3_2_ from GD_BUSINESSCODEELEMENT businessel0_ left outer join GD_BUSINESSCODETYPE businessty1_ on businessel0_.GD_BUSINESSCODETYPE=businessty1_.GD_BUSINESSCODETYPE left outer join GD_BUSINESSCODEELEMENT businessel2_ on businessel0_.MASTER_BUSINESSCODEELEMENT=businessel2_.GD_BUSINESSCODEELEMENT where businessel0_.GD_BUSINESSCODEELEMENT=?
2018-03-08 13:11:16,256 DEBUG 99FE394CE00B497699A5A9916B1E9A6A [net.sf.ehcache.store.disk.Segment]: put added 0 on heap
Hibernate: select statuscode0_.GD_STATUS as GD_STATUS1_15_0_, statuscode0_.DBUSERINS as DBUSERINS2_15_0_, statuscode0_.DBUSERUPD as DBUSERUPD3_15_0_, statuscode0_.INSERTDATE as INSERTDATE4_15_0_, statuscode0_.MODIFYDATE as MODIFYDATE5_15_0_, statuscode0_.AU_USERIDINS as AU_USERIDINS8_15_0_, statuscode0_.AU_USERIDUPD as AU_USERIDUPD9_15_0_, statuscode0_.VERSION as VERSION6_15_0_, statuscode0_.DESCRIPTION as DESCRIPTION7_15_0_ from GD_STATUSCODE statuscode0_ where statuscode0_.GD_STATUS=?
Hibernate: select statuscode0_.GD_STATUS as GD_STATUS1_15_0_, statuscode0_.DBUSERINS as DBUSERINS2_15_0_, statuscode0_.DBUSERUPD as DBUSERUPD3_15_0_, statuscode0_.INSERTDATE as INSERTDATE4_15_0_, statuscode0_.MODIFYDATE as MODIFYDATE5_15_0_, statuscode0_.AU_USERIDINS as AU_USERIDINS8_15_0_, statuscode0_.AU_USERIDUPD as AU_USERIDUPD9_15_0_, statuscode0_.VERSION as VERSION6_15_0_, statuscode0_.DESCRIPTION as DESCRIPTION7_15_0_ from GD_STATUSCODE statuscode0_ where statuscode0_.GD_STATUS=?
2018-03-08 13:11:16,263 DEBUG 99FE394CE00B497699A5A9916B1E9A6A [net.sf.ehcache.store.disk.Segment]: put added 0 on heap
DAO代码非常简单:

@DAO
public class ContractDAO extends AbstractDAO<Contract> {

    public ContractDAO(SessionFactory sessionFactory) {
        super(sessionFactory);
    }

    public List<Contract> getAll() {
        return list(query(" from Contract c"));
    }

    public Contract getById(int id) {
        return query(" from Contract c where c.id = "+id).getSingleResult();
    }
}
@DAO
公共类ContractDAO扩展了AbstractDAO{
公共合同DAO(SessionFactory SessionFactory){
超级(sessionFactory);
}
公共列表getAll(){
退货清单(查询(“来自合同c”);
}
公共合同getById(int id){
返回查询(“来自合同c,其中c.id=“+id”).getSingleResult();
}
}

知道怎么回事吗?

您需要将持久对象和查询配置为可缓存

只需将
@Cache(usage=cacheconcurrencysttrategy.NONSTRICT\u READ\u WRITE)
添加到您的
契约
类中即可缓存实体

然后,Hibernate将从缓存而不是数据库中获取实体。但是,在您的情况下,您使用的是查询。我不是dropwizard expect,但可能有一个
findById
地方可以替代
查询(“从合同c,其中c.id=“+id”)
。顺便说一句,你不应该这样连接。改为在准备好的语句中使用参数


对于
getAll
,需要将查询设置为可缓存。同样,我不知道dropwizard是如何实现的,但必须在某个地方有一个可设置缓存的
setCacheable

您是否可以在存储库/DAOsThanks中显示代码使用情况,这是不必要的。它起作用了,但我认为它不起作用。。我添加了一个服务来检查缓存,并且有缓存命中。要放置@Cacheable,只有在hibernate属性中没有将shareMode配置为ALL时才有必要。