小编Ran*_*ain的帖子

Arquillian中所有测试用例的单一部署

我们使用arquillian-junit-container 1.0.0最终版本进行Junit测试.

我们拥有如此多的测试类和每个测试类作为@Deployment方法,因此当我一起运行所有测试时,它会产生内存和性能问题.

任何人都可以通过告诉我们如何避免每个单独的类的多个部署来帮助我解决这个问题.我们如何在Arquillian中为所有测试用例实现单一部署?

jboss-arquillian jboss7.x

19
推荐指数
2
解决办法
7052
查看次数

Hibernate具有相同where子句的二级查询缓存问题

我的应用程序使用JPA(1.2),Spring(3.1.2),Spring Data(1.1.0)和Hibernate(4.1.7).数据库:Oracle10g

我们启用了二级缓存.它与实体一起工作正常但它在命名查询缓存上创建了问题.

问题是:如果命名查询具有相同的where子句但是具有不同的select语句,那么无论第一个查询执行它还是为第二个查询提供相同的结果.

就像我的第一个查询(countRelease)一样

select count(r) from Release r where r.type in 
(select c.contentTypeId from ContentType c where c.parentContentTypeId is NULL)
order by r.validityStart
Run Code Online (Sandbox Code Playgroud)

和第二个查询(findRelease)是

select r from Release r where r.type in 
(select c.contentTypeId from ContentType c where c.parentContentTypeId is NULL)   
order by r.validityStart
Run Code Online (Sandbox Code Playgroud)

如果先运行第一个查询,那么计数将会到来,之后如果我运行第二个查询,那么还会计数它应该给我发布实体的列表.

如果我删除查询缓存它工作正常,如果我在第二个查询where子句中进行一些更改,那么它也工作正常,但我不需要这样做.

我们如何解决这个问题?

我的Java代码

@Query(name="findRelease")
@QueryHints({@QueryHint(name = "org.hibernate.cacheRegion", value ="cvodrelease"),@QueryHint(name = "org.hibernate.cacheable", value ="true") })
public List<Release> findRelease();

@Query(name="countRelease")
@QueryHints({@QueryHint(name = "org.hibernate.cacheRegion", value ="cvodrelease"),@QueryHint(name = "org.hibernate.cacheable", value ="true") })
public Long  countOfRelease(Date today);
Run Code Online (Sandbox Code Playgroud)

缓存配置 …

java hibernate jpa spring-data spring-data-jpa

14
推荐指数
1
解决办法
7472
查看次数