【发布时间】:2022-11-16 18:09:44
【问题描述】:
我为以下内容创建了实体和存储库,但它无法创建方法 findTestLikeNo,并在查询中设置了参数 ?1。
如果您知道此问题的原因,请告诉我。
mport jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@SqlResultSetMapping(
name="testMap",
entities = {
@EntityResult(
entityClass= TestEntity.class,
fields = {
@FieldResult(name="testNo", column="test_no"),
@FieldResult(name="testItem", column="test_item"),
}
)
}
)
@NamedNativeQueries({
@NamedNativeQuery(
name = "TestEntity.findTest",
query = "w1.test_no, w1.test_item" +
" from W_table w1",
resultSetMapping = "testMap",
resultClass = TestEntity.class
),
@NamedNativeQuery(
name = "TestEntity.findTestLikeNo",
query = "w1.test_no, w1.test_item" +
" from W_table w1" +
" where w1.test_no like ?1;",
resultSetMapping = "testMap",
resultClass = TestEntity.class
)
})
@Entity
@Getter
@Setter
public class TestEntity {
public TestEntity(){
}
@Id
private String testNo;
private String testItem;
}
import hoge.mypkg.TestEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface TestRepository extends JpaRepository<TestEntity, String> {
List<TestEntity> findTest();
List<TestEntity> findTestLikeNo(String testNo);
}
Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'testRepository' defined in
TestRepository defined in @EnableJpaRepositories declared on
JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration:
Could not create query for public abstract java.util.List
TestRepository.findTestLikeNo(java.lang.String);
Reason: Failed to create query for method public abstract java.util.List
TestRepository.findTestLikeNo(java.lang.String);
No property 'findTestLikeNo' found for type 'TestEntity'
【问题讨论】:
-
方法 findTestLikeNo(String testNo) 的声明中不缺少 @Param 吗?