Java 基于JPA的按字段名查找实体的条件查询

Java 基于JPA的按字段名查找实体的条件查询,java,jakarta-ee,jpa,jpa-2.0,criteria,Java,Jakarta Ee,Jpa,Jpa 2.0,Criteria,我不知道是不是我发现JPA的标准查询很困难。 下一步如何获取name=:tagNam的标记 Tag getTagByName(String tagName){ CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<Tag> cq = cb.createQuery(Tag.class); Root<Tag> root = cq.from(Tag.cla

我不知道是不是我发现JPA的标准查询很困难。 下一步如何获取name=:tagNam的标记

    Tag getTagByName(String tagName){

        CriteriaBuilder cb = em.getCriteriaBuilder();
        CriteriaQuery<Tag> cq = cb.createQuery(Tag.class);
        Root<Tag> root = cq.from(Tag.class);
        **//what to do next in order to get Tag(s) with name = :tagNam**
    }
标记getTagByName(字符串标记名){
CriteriaBuilder cb=em.getCriteriaBuilder();
CriteriaQuery cq=cb.createQuery(Tag.class);
Root=cq.from(Tag.class);
**//下一步如何获取name=:tagNam的标记**
}
Tag
是一个具有字段
name

我看到:

  • 但无法掌握概念。是否有一个简单的一步一步或全面的教程呢

    我也很沮丧,因为我被要求(根据教程)使用
    标记
    ,这当然不能解决问题。

    尝试以下方法:

    CriteriaQuery<Tag> cq = cb.createQuery(Tag.class);
    Root<Tag> tag = cq.from(Tag.class);
    cq.where(cb.equal(tag.get(Tag_.name), tagName));
    
    CriteriaQuery cq=cb.createQuery(Tag.class);
    根标记=cq.from(tag.class);
    cq.where(cb.equal(tag.get(tag_u.name),标记名));
    

    这是根据oracle文档(您的第一个链接)改编的。

    您配置了注释处理器吗?看看网络上有很多教程,例如,只做它所做的,它创建元模型(类),然后是simplehm。现在将检查元模型在最后一行,
    tag
    没有一个
    .get()
    method,它不是tag类的get()方法。它是根接口的一种方法,继承自路径接口。所以它应该在那里…它不能解析
    标记
    我认为它与
    元模型有关(我不想使用它),那么为什么不使用JPQL呢?您可以使用类似“从标记t开始,其中t.name:=标记名”…好的,但您知道要么使用标准和元模型,要么使用JPQL,对吗?所以,如果你不想使用JPQL,你需要使用元模型来过滤你的结果。。。尽管如此,我仍然认为你发布的这个教程非常简单。。。