替换已弃用的方法 hibernate

问题描述 投票:0回答:1

Session 接口方法 createQuery(String queryString) 已弃用。为什么它被弃用?它已经过时了,但还没有提出任何替代方案。是否有类似的字符串 HQL 删除操作的方法。

对于删除/更新/插入操作,它工作正常,但它被标记为已弃用

java hibernate deprecated
1个回答
0
投票

您考虑过使用

@NamedQuery
吗?

@Entity
public class Person {
    @NamedQueries({
       @NamedQuery(
          name = "person.findByName", 
          query = "from Person where name = :name"
       )
    })

    @Id
    private long id;

    private String name;
}
public class PersonDao {
    private final Session session;

    public PersonDao(Session session) { this.session = session; }

    public List<Person> findByName(String name) {
        Query<Person> query = session.createNamedQuery("person.findByName", Person.class);
        query.setParameter("name", name);
        return query.list();
    }
}

参见 https://www.baeldung.com/hibernate-named-query

© www.soinside.com 2019 - 2024. All rights reserved.