gpt4 book ai didi

jpa - 无法访问 MetaModel 实体属性

转载 作者:行者123 更新时间:2023-12-04 02:02:53 25 4
gpt4 key购买 nike

我尝试使用以下代码访问 MetaModel 实体属性/变量:

CriteriaQuery<User> criteria = builder.createQuery(User.class);
Metamodel m = entityManager.getMetamodel();
EntityType<User> User_ = m.entity(User.class);
Root<User> userRoot = criteria.from(User.class);
criteria.where(builder.equal(userRoot.get(User_.email)), user.getEmail());

但电子邮件无法解析或不是字段。是否必须为用户类创建 StaticMetaModel 类。即“User_”???

如果是,请查看链接 http://docs.oracle.com/javaee/6/tutorial/doc/gkjbq.html在这里,您可以找到以下代码:

CriteriaQuery<Pet> cq = cb.createQuery(Pet.class);
Metamodel m = em.getMetamodel();
EntityType<Pet> Pet_ = m.entity(Pet.class);
Root<Pet> pet = cq.from(Pet.class);
cq.where(cb.equal(pet.get(Pet_.name), "Fido"));

请帮帮我。

最佳答案

您引用的 Oracle 文档是完全错误的。 STATIC 元模型由注释处理器生成。它不是通过 JPA 元模型类获得的。

带有“_”的 STATIC(规范)元模型类不是 EntityType 对象。请参阅 JPA 规范第 6.2.1.1 节和文档,例如 this one .

关于jpa - 无法访问 MetaModel 实体属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33773474/

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