Welcome

首页 / 软件开发 / JAVA / hibernate annoation (十 映射查询)

hibernate annoation (十 映射查询)2009-10-10 javaeye ericjoe在类级别上配置:

Java代码

@Entity
@NamedQueries(value = { @NamedQuery(name="query1",query="select a from A a") })

此查询是sessionfactory级别的也就是在创建sessionfactory时候已经处于内存中了

可以在任何地方使用。

调用:

Java代码

Query q = session.getNamedQuery("query1");

可同时配置多个

Java代码

@Entity
@NamedQueries(
value = {
@NamedQuery(name="query1",query="select c from A c where c.id=:id") ,
@NamedQuery(name="query2",query="select c from C c where c.id=:id")
}

还可以通过hints属性设置查询属性:

例如:设置超时

Java代码

@NamedQuery(name="query2",query="select c from A c where c.id=?",hints=@QueryHint(name = "timeout", value = "20")

属性说明:

cacheable是否可以与二级缓存交互(默认false)
cacheRegion设置缓存名称(默认othewise)
timeout查询超时设定
fetchSice所获取的结果集大小
flushMode本次查询所用的刷新模式
cacheMode本次查询所用的缓存模式
readOnly是否将本次查询所加载的实体设为只读(默认false)
comment将查询注释下如所生成的sql