是否有实现javax.persistence.Parameter<;的类;T>;?
我正在使用JPA和Hibernate使用命名查询从数据库中获取实体,我遇到了一件让我困惑的事情:为什么是否有实现javax.persistence.Parameter<;的类;T>;?,java,hibernate,jpa,jpa-2.0,Java,Hibernate,Jpa,Jpa 2.0,我正在使用JPA和Hibernate使用命名查询从数据库中获取实体,我遇到了一件让我困惑的事情:为什么javax.persistence.Parameter接口没有默认实现 CriteriaBuilder在JPA2中如何使用@StaticMetamodel给我留下了深刻的印象,这意味着我获得了类型安全性,不必为名称设置字符串。我想应用一些类似于我目前正在研究的JPA1 EJB的东西: Dealergroup_.class: public Dealergroup_ { public Para
javax.persistence.Parameter
接口没有默认实现
CriteriaBuilder在JPA2中如何使用@StaticMetamodel
给我留下了深刻的印象,这意味着我获得了类型安全性,不必为名称设置字符串。我想应用一些类似于我目前正在研究的JPA1 EJB的东西:
Dealergroup_.class:
public Dealergroup_
{
public Parameter<Integer> id = new ParameterImpl<Integer>("id");
/// etc...
}
DealergroupFacade.class:
// ...
public Dealergroup fetch(Integer id)
{
TypedQuery<Dealergroup> query = em.createNamedQuery("Dealergroup.fetchById", Dealergroup.class);
query.setParameter(Dealergroup_.id, query);
return query.getSingleResult();
}
// ...
Dealergroup\uu类:
公共DealGroup_
{
公共参数id=新参数empl(“id”);
///等等。。。
}
DealergroupFacade.class:
// ...
公共DealGroup获取(整数id)
{
TypedQuery query=em.createNamedQuery(“Dealergroup.fetchById”,Dealergroup.class);
setParameter(Dealergroup_u2;.id,查询);
返回query.getSingleResult();
}
// ...
我惊讶地发现没有参数接口的实现——当然,我可以自己轻松实现,因为它们的缺失让我怀疑以这种方式使用它可能是一个错误
我应该实现参数吗?你知道为什么没有现成的实现,为什么我找不到很多(任何,真正的)使用它的例子吗?这是一个接口,JPA实现将使用他们自己的实现类实现标准“ParameterExpression”(它扩展了参数)。用户通过
CriteriaBuilder.parameter()
获取一个,或者通过Query.getParameter()
在查询中通过传统方式定义一个,该查询是JPA实现将通过实现条件“ParameterExpression”(扩展参数)实现的接口,使用自己的实现类。用户通过CriteriaBuilder.parameter()
获取一个,或者通过Query.getParameter()
在查询中通过传统方法定义一个时,它们不会是静态的,是吗?JPA2 javadocs是公共的,但不会是静态的,是吗?JPA2 javadocs是公共的