【发布时间】:2020-10-23 00:47:08
【问题描述】:
我有一个扩展 crud 存储库的接口
public interface PersonRepo extends CrudRepository<Person, String> {
@Query(value="select name from PERSON where addr=?1", nativeQuery = true)
List<Person> getPeronUsingAddress(String addr);
}
Person 实体如下所示:
class Person {
private String name;
private String phoneNumber;
private String address;
//along with getters setters and all basic hibernate annotation to persist and retrieve
}
人员对象被保存到数据库中,并且在检索本机查询时工作正常,因为休眠执行正确的查询。但是我无法获取返回类型。
-
如果返回类型是人员列表,那么我会收到 InvalidDataAccessResourceUsageException
-
如果我创建一个接口并使用接口列表作为返回类型
interface response { String getName(); } List of Response interface getPeronUsingAddress(String addr);然后我在服务中获取代理对象。我无法从代理对象中获取数据。
-
我做的另一种方法是使用对象列表作为返回类型。但是不能向下转换为我的 Person 对象。
如何做到这一点。?或者是否有任何其他解决方案可以让我从 crud 存储库返回选择性列并获取包含这些选定列的 Java 对象。
【问题讨论】:
标签: java spring-boot spring-data-jpa