小编Dat*_*eus的帖子

内存缓存数据到期时是否删除了密钥?

我正在努力将memcache添加到在GAE/J上运行的应用程序.我有一个问题,关于生产内存缓存在值到期时的行为,如果它们的密钥也被删除了.

我能找到最接近回答这个问题的地方是:http://code.google.com/appengine/docs/java/memcache/overview.html#How_Cached_Data_Expires

我知道我不能依赖留在memcache中的价值观; 我不知道,但我想知道的是,是否也删除了映射到这些值的键.

换句话说,如果我这样做

mycache.contains("key")

将值从缓存中推出后,这仍然是真的吗?

旁注:不要认为它有所作为; 但为了以防万一,我正在使用来自memcache服务的异步内存缓存,并像这样得到它:

MemcacheServiceFactory.getAsyncMemcacheService();

我问这个是因为我不是那么典型的

if(cache.get("key") == null)

我从数据存储区返回时存储空值,因此我不会不断查找空值.我确实要小心确保在可能发生变化时移除密钥.因为memcache查找返回null,我假设查询实际上是null; 但我确实确保当其他可能发生变化的查询发生时,null查找被删除.这就是为什么我使用cache.contains("key")而不是cache.get("key") == null

java google-app-engine memcached

6
推荐指数
1
解决办法
932
查看次数

获取Javassist类型而不是实际的Hibernate实体类型

我偶然发现了一个非常烦人的情况:我使用Hibernate和Spring作为我的应用程序的后端,似乎在某些情况下,与特定实体关系的实体不会从DB获取为正常的实体对象,但作为Javassist类型.例如:

我的Campaign实体具有以下关系:

@Entity
@Table(name = "campaign")
public class Campaign implements Serializable {
  [..]
  @ManyToMany(fetch = FetchType.LAZY)
  @JoinTable(uniqueConstraints = @UniqueConstraint(columnNames = {
        "campaign_id", "dealer_id" }), name = "campaign_has_dealer", joinColumns = { @JoinColumn(name = "campaign_id", nullable = false) }, inverseJoinColumns = { @JoinColumn(name = "dealer_id", nullable = false) })
  private List<Dealer> dealers = new ArrayList<Dealer>();

@ManyToMany
// (fetch = FetchType.LAZY)
@JoinTable(uniqueConstraints = @UniqueConstraint(columnNames = {
        "campaign_id", "sales_area_id" }), name = "campaign_has_sales_area", joinColumns = { @JoinColumn(name = "campaign_id", nullable = false) }, inverseJoinColumns …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate javassist

6
推荐指数
1
解决办法
1万
查看次数

从不同的模块自动装配bean

我有一个很大的应用程序,我想分解成可管理的模块.我使用spring和Jpa(Hibernate作为提供者).我想出了一个结构,其中我有一个包含所有实体和dao类的核心模块,其他模块使用核心模块来实现持久性,并且每个模块都有自己的一组服务类和控制器.

在此输入图像描述

所有Jpa和spring配置文件都在核心模块中.通过这种设置,我面临着在使用核心模块的模块中自动装配dao bean的问题.所以我的问题是,是否可以从其他模块中的核心模块自动装配bean(或者可能使用跨模块的上下文)?如果有更好的方法,我也愿意接受有关结构的建议.

谢谢

java spring hibernate autowired

6
推荐指数
1
解决办法
4747
查看次数

在Play 2.0+中加载初始数据

我正在创建一个Play框架应用程序,我需要加载一些数据.该框架(我在1.2.4时完成了一些工作,现在我一直在尝试2.0.3)用于支持创建一个data.yaml可以在运行时加载的文件.

对此的支持似乎已被取消.现在解决这个问题的最佳做法是什么?

playframework playframework-2.0

6
推荐指数
1
解决办法
4860
查看次数

是否可以查看/优化Hibernate查询计划?

Hibernate中是否有一些工具可用于查询查询的查询计划?我可以查看源代码并跟踪连接和急切的提取,并希望我不会错过任何,或者我可以查看SQL日志并尝试将SQL语句与其源匹配,但我想知道是否存在是一种更快的方式.例如,我可以想象一个显示相关类的对象图或带有某种测序符号的ER图.

performance hibernate

5
推荐指数
1
解决办法
2371
查看次数

Hibernate Criteria Query 添加了一个额外的 order by 子句

我有一个带有投影和转换器的 DetachedCriteria 查询,如下所示

criteria = DetachedCriteria.forClass(Report.class, "r");
criteria
.createAlias("template", "t")
.createAlias("constituents", "c")
.setProjection(
        Projections.projectionList()
.add(Projections.property("r.reportId").as("reportId"))
.add(Projections.property("r.reportNm").as("reportNm"))
.add(Projections.property("t.templateNm").as("templateNm"))
.add(Projections.property("t.templateTyp").as("templateTyp"))
).setResultTransformer(Transformers.aliasToBean(ReportSummary.class));
Run Code Online (Sandbox Code Playgroud)

然后我从会话中获取 Citeria,现在当我尝试动态添加 orderBy 子句时,即

Session session = entityManager.unwrap(Session.class);
Criteria c = criteria.getExecutableCriteria(session);
Order order = sortDirection.equals("ASC")?
Order.asc(orderByColumnName):Order.desc(orderByColumnName);
c.addOrder(order);
Run Code Online (Sandbox Code Playgroud)

生成的查询包含一个额外的 orderBy 子句,即

order by reportId ASC(NOT REQUIRED ADDED AUTOMATICALLY), order by reportNm ASC
Run Code Online (Sandbox Code Playgroud)

有人可以指导我解决问题吗

hibernate

5
推荐指数
0
解决办法
676
查看次数

如何调试JPA CriteriaBuilder查询

如何调试使用JPA 2.0 CriteriaBuilder?构建的查询?有没有办法打印出正在执行的查询?

我使用的开发Web应用程序NetBeans,MySql,GlassFish.我会避免在调试模式下启动MySql,因为它也用于其他应用程序.JPA提供商是EclipseLink.

java mysql jpa eclipselink criteria-api

5
推荐指数
1
解决办法
8905
查看次数

如何使用@Formula(在Hibernate中)引用相同的(当前)对象

我有这门课

@Entity
@Table(name = "DB.APPL_SESSION")
@AttributeOverrides({@AttributeOverride(name = "id", column = @Column(name = "APPL_SESSION_ID"))})
@SequenceGenerator(name = "TableSequence", sequenceName = "DB.APPL_SESSION_SQ")

public class AiSession{

@Formula("(select sum(nvl(budg.AMT_OV,budg.AMT)) from DB.BUDGET budg where budg.APPL_SESSION_ID = APPL_SESSION_ID)")
private LocalDate realSessionStartDate;
Run Code Online (Sandbox Code Playgroud)

在上面的公式中,我使用DB.BUDGET对象和当前对象id(APPL_SESSION_ID).但现在我只想使用AidApplicantYearSession类中的下一个成员变量(StartDate)

@Basic
@Temporal(TemporalType.DATE)
@Column(name = "START_OV_DT")
private Date overrideStartDate;
Run Code Online (Sandbox Code Playgroud)

我应该如何编写一个看起来像上面的公式,但只使用对象的成员变量?我想出来了

 @Formula("(select START_OV_DT from DB.APPL_SESSION)")
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?这两个公式的逻辑完全不同.

orm hibernate formula

5
推荐指数
1
解决办法
2万
查看次数

AbstractRoutingDataSource + JPA不会创建除defaultTargetDataSource之外的表

我使用JPA注释(Hibernate实现)来初始化我的数据库模式.我遵循文章DYNAMIC DATASOURCE ROUTING来实现动态数据源路由类.

但是,我有两个数据库(映射2个数据源).我将第一个数据源设置为defaultTargetDataSource.然后开始我的申请.当我的应用程序尝试访问第二个数据源时,它告诉我该表不存在.似乎AbstractRoutingDataSource只为默认数据源创建表,但其他数据源.

有没有想法在所有数据库中创建模式?

PS.我正在使用AbstractRoutingDataSource来实现我自己的数据库分片.

java orm spring hibernate

5
推荐指数
1
解决办法
392
查看次数

如何在Spring-data-jpa中集成全文搜索?

有没有办法将全文搜索与spring数据jpa集成?我习惯在我的项目中使用hibernate搜索.

Hibernate搜索(Hibernate Search通过将Hibernate Core与Apache Lucene™搜索引擎的功能相结合,将全文搜索引擎的强大功能带入持久性域模型.)可以正常使用传统的jpa.

现在我将转向spring data jpa.实现全文搜索的最佳做法是什么?

spring full-text-search hibernate-search spring-data-jpa

5
推荐指数
1
解决办法
4880
查看次数