我有一个问题,我无法弄清楚代码的问题。 我是Japa Jpa项目的新手,我无法理解。 提前谢谢!
这是我得到的错误。它更长,但我希望这已经足够了。
setContentsMargins(0,0,0,0)
有问题的一行:
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Problem compiling [SELECT item FROM NewsArticle item WHERE item.user.idUser = '0'].
[40, 56] The state field path 'item.user.idUser' cannot be resolved to a valid type.
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1743)
使用表格生成实体生成的类:
Query getFeed = entityManager.createQuery("SELECT item FROM NewsArticle item WHERE item.user.idUser = \'" + loggedUser.getIduser() + "\'");
答案 0 :(得分:1)
您将id
定义为int
:
@Id
private int idnews;
然后在查询中你把它放在两个引号之间?!
item.user.idUser = \'" + loggedUser.getIduser() + "\'"
//------------------^-------------------------------^
这就是问题所在,所以要解决它只是删除引号
重要强>
除了避免在查询中连接它不安全,而是可以使用setParameter
之类的:
Query getFeed = entityManager.createQuery("SELECT item FROM NewsArticle item WHERE item.user.idUser = :id");
getFeer.setParameter("id", loggedUser.getIduser());