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
是否有实现javax.persistence.Parameter<;的类;T>;?_Java_Hibernate_Jpa_Jpa 2.0 - Fatal编程技术网

是否有实现javax.persistence.Parameter<;的类;T>;?

是否有实现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

我正在使用JPA和Hibernate使用命名查询从数据库中获取实体,我遇到了一件让我困惑的事情:为什么
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是公共的