Ben*_* M. 18 java spring-data-jpa
这是我的问题的简化示例.我有这个存储库和实体类.
public interface ThingRepository extends JpaRepository<ThingEntity, Long> {
ThingEntity findByFooInAndBar(String fooIn, String bar);
}
@Entity
public class ThingEntity {
@Column(name="FOO_IN", nullable=false, length=1)
private String fooIn;
public String getFooIn() {
return fooIn;
}
public setFooIn(String fooIn) {
this.fooIn = fooIn;
}
/* not including bar property for brevity's sake */
}
Run Code Online (Sandbox Code Playgroud)
Spring正在抛出以下异常.
org.springframework.data.mapping.PropertyReferenceException: No property foo found for type ThingEntity!
Run Code Online (Sandbox Code Playgroud)
看起来Spring正在采用该方法findByFooInAndBar并认为这foo是我的属性名称,并且in是用于匹配集合中的值的关键字.
我如何理解属性名称是fooIn不是foo?
Ben*_* M. 15
为了解决这个问题,我使用@Query注释手动定义了查询.如果他们找到一个不需要手动查询的解决方案,我会很乐意接受其他人的回答.
public interface ThingRepository extends JpaRepository<ThingEntity, Long> {
@Query("SELECT t FROM Thing t WHERE t.fooIn = ?1 AND t.bar = ?2")
ThingEntity findByFooInAndBar(String fooIn, String bar);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55373 次 |
| 最近记录: |