ArgumentException:在字符 xx 处遇到“”,但应为:[]
Posted
技术标签:
【中文标题】ArgumentException:在字符 xx 处遇到“”,但应为:[]【英文标题】:ArgumentException: Encounter "" at character xx, but expected: [] 【发布时间】:2021-12-26 04:17:07 【问题描述】:我对带有连接子句的简单 SELECT 查询有疑问。
我正在尝试获取 Author 及其书籍列表。 我的查询看起来像:
public Author findAuthorWithBooks(Integer authorId)
return (Author) em.createQuery("SELECT a FROM Author a LEFT JOIN a.books WHERE a.id = :authorId")
.setParameter("authorId", authorId)
.getSingleResult();
但是当代码运行时我得到ArgumentException: Encounter "" at character xx, but expected: []
简化的实体如下所示:
public class Author
@OneToMay(mappedBy = "author", fetch=LAZY)
private Collections<Book> books;
public class Book
@ManyToOne(fetch=LAZY)
@JoinColumn(name="AUTHOR_ID")
private Collections<Book> books;
我想我犯了一些非常愚蠢的错误,但我找不到它。
【问题讨论】:
【参考方案1】:这是您的问题中的拼写错误,或者您的 Book
课程有误。应该是这样的:
public class Book
@ManyToOne(fetch=LAZY)
@JoinColumn(name="AUTHOR_ID")
private Author author;
此外,您的查询似乎不正确。请尝试以下操作:
public Author findAuthorWithBooks(Integer authorId)
return (Author) em.createQuery("SELECT a FROM Author a LEFT JOIN a.books b WHERE b.id = :authorId")
.setParameter("authorId", authorId)
.getSingleResult();
【讨论】:
以上是关于ArgumentException:在字符 xx 处遇到“”,但应为:[]的主要内容,如果未能解决你的问题,请参考以下文章
System.ArgumentException 路径中的非法字符
带有 WinHttpHander() 的 gRPC “ArgumentException:路径中有非法字符。”
构造 ArgumentException 时如何以编程方式确定参数名称?
System.ArgumentException:初始化字符串的格式不符合从索引 0 开始的规范。3