gpt4 book ai didi

java - 是否有任何类实现 javax.persistence.Parameter

转载 作者:太空宇宙 更新时间:2023-11-04 07:39:07 27 4
gpt4 key购买 nike

我正在使用 JPA 和 Hibernate 使用命名查询从数据库中获取实体,但我遇到了一些让我困惑的事情:为什么没有 javax.persistence.Parameter 接口(interface)的默认实现?

我对 JPA2 中的 CriteriaBuilder 使用 @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();
}
// ...

我惊讶地发现没有 Parameter 接口(interface)的实现 - 当然,我可以轻松地自己实现它,因为它们的缺失让我怀疑以这种方式使用它可能是一个错误?

我应该实现参数吗?知道为什么没有现成的实现以及为什么我找不到许多(任何,真正的)其使用示例吗?

最佳答案

这是一个 JPA 实现将使用其自己的实现类通过其 Criteria“ParameterExpression”(扩展了 Parameter)的实现来实现的接口(interface)。用户通过 CriteriaBuilder.parameter() 获取参数,或者通过 Query.getParameter() 在查询中通过传统方式定义参数

关于java - 是否有任何类实现 javax.persistence.Parameter<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16335765/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com