【发布时间】:2016-03-16 10:27:52
【问题描述】:
我有一个看起来像这样的实体
@Entity
@Getter
@Setter
public class Sheep {
private Slaughter slaughteredBy;
}
我想编写一个存储库方法来获取给定 Slaughter 屠宰的所有绵羊:
public interface SheepRepository {
public List<Sheep> findAllBySlaughteredBy(Slaughter slaughter);
}
但是当我调用 findAllBySlaughteredBy 方法时出现 NoSuchElementException:
java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:854)
at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1042)
at org.springframework.data.jpa.repository.query.CriteriaQueryParameterBinder.bind(CriteriaQueryParameterBinder.java:63)
- 是否因为我的字段名称中有“by”而引发异常?
- 如果第一个问题的答案是肯定的,我是否真的需要重命名我的字段,或者我可以在存储库上为我的查询函数使用另一个名称来解决问题吗?
【问题讨论】:
-
JPA API 没有这样的限制。 “Spring Data JPA”可能有问题,但那不是 JPA API。
-
你是对的,谢谢!编辑标题和标签。
-
@jod 你能贴出fullstacktrace吗,问题不是因为
by。另外,我没有看到private Slaughter slaughteredBy;字段的任何映射OneToOne或ManyToOne或Embeddable等。 -
在示例中任意杀死动物有 +1
标签: java spring hibernate jpa spring-data