gpt4 book ai didi

java - 组织.hibernate.PropertyAccessException : could not get a field value by reflection getter of

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:07:51 26 4
gpt4 key购买 nike

我环顾四周寻找答案,看起来它与反射有关,但由于我没有处理过它们,所以我不确定如何进行。我正在尝试构建一个 HQL 查询,该查询仅返回表中与作为 FK 的列匹配的行到另一个表中的 PK。

这是我的代码:

实体书:

@Entity
@Table(name="book")
public class Book {

@Id
private String bookNumber;
private String bookName;
private String bookDescription;
private double bookPrice;

@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="shelfnumber")
Shelf shelf;

实体货架:

@Entity
@Table(name="shelf")
public class Shelf {

@Id
private String shelfNumber;

@OneToMany(mappedBy="shelf",cascade=CascadeType.ALL)
Set<Book> shelfBooks;

注意:两个实体类都有getters/setters

Action 类:

    DynaActionForm searchForm =((DynaActionForm)form);
String shelfNum = searchForm.getString("shelfNum");

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();

try{
session.getEntityMode();
Query query = session.createQuery("FROM Book B WHERE B.shelf = :shelfNum"); //here is where the error happens: B.shelf is the problem but don't know why
query.setParameter("shelfNum", shelfNum);
List books = query.list();
request.setAttribute("books", books);

} finally{
session.close();
}

我得到的错误信息:

org.hibernate.PropertyAccessException: could not get a field value by reflection getter of com.library.entity.Shelf.shelfNumber

再往下我看到:

Caused by: java.lang.IllegalArgumentException: Can not set java.lang.String field com.library.entity.Shelf.shelfNumber to java.lang.String

感谢您的帮助!

最佳答案

您的查询将 Shelf 的实例与 String 的实例进行比较。那是行不通的。 Shelf 是一个 Shelf。它不是 String

查询应该是

select b from Book b where b.shelf.shelfNumber = :shelfNum

另外,请告诉我您实际上并没有在每次请求时都重新创建 SessionFactory!

stop using raw types .我们已经不是 2003 年了。

关于java - 组织.hibernate.PropertyAccessException : could not get a field value by reflection getter of,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33327906/

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