为了账号安全,请及时绑定邮箱和手机立即绑定

Java/JPA:带连接的命名本机查询抛出异常

Java/JPA:带连接的命名本机查询抛出异常

慕村225694 2021-12-01 19:55:24
在我Benutzer-Entity我有以下OneToMany关系:@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval=true)@JoinColumn(name="BENUTZER_ID")private List<Dokument> dokumente = new ArrayList<>();在我中,Dokument-Entity我现在想Dokument通过它hash-value和它的搜索来获得一个特定的foreign-key (BenutzerID)- 我试图通过以下方式做到这一点NamedNativeQuery:@NamedNativeQueries({  @NamedNativeQuery(    name="findDokumentByHashAndBenutzerID",    query="SELECT d.* FROM Dokument d "            + "JOIN Benutzer b ON d.Benutzer_id = b.Id_Benutzer WHERE d.Benutzer_id = ? AND d.Hash = ?")})当我在我的数据库 (H2) 中使用这个查询时,它可以工作,但在 Java 中我得到以下异常:javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.DatabaseException 内部异常: org.h2.jdbc.JdbcSQLException: SQL Syntax Fehler Befehl "FINDDOKUMENTBYHASHANBENUTZERID[ ] "; erwartet "FROM, {" SQL 语句中的语法错误 "FINDDOKUMENTBYHASHANBENUTZERID[] "; 预期 "FROM, {"; SQL 语句:findDokumentByHashAndBenutzerID [42001-197] 错误代码:42001 调用:findDokumentByHashAndBenutzerID 查询:ReadAllQuery(referenceClass=Dokument sql="findDokumentByHashAndBenutzerID") at org.ineclipseternal.persist.persistence QueryImpl.getDetailedException(QueryImpl.java:377) at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:260) at org.eclipse.persistence.internal.jpa.QueryImpl.getSingleResult(QueryImpl.java: 516) 在 
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

基于异常,我猜你会打电话

 entityManager.createQuery("findDokumentByHashAndBenutzerID");

代替

 entityManager.createNamedQuery("findDokumentByHashAndBenutzerID");


查看完整回答
反对 回复 2021-12-01
  • 1 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信