存储库重用的spring数据继承

时间:2017-02-03 18:25:41

标签: java spring-data

我正在使用Spring Data加载一个对象并且一切正常...但是,我不想加载整个对象,因为我返回一个列表显示在表中,所以我只想加载表中的内容。然后,当用户选择"细节"我想对服务器进行AJAX调用以加载整个对象。我的想法是有一个基础类" TableView"然后有一个子类"类DetailsView扩展了TableView"。我可以创建一个新的存储库,所以一个用于TableView,一个用于DetailsView,但我想知道是否有办法使用相同的存储库类?下面是我想做的一个例子,但我不知道如何更改repositoryClass以实现我想要的...我收到以下错误:

SQLGrammarException:无法在org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:261)中提取ResultSet

class TableView{
    String title;
}
class DetailsView extends TableView{
    String details;
}
interface ITableViewRepository extends CrudRepository<TableView, Integer>{

1 个答案:

答案 0 :(得分:1)

您可以在private gridEvent(event) { let methodName = Object.keys(event)[0]; if(this[methodName]) { // method exists in the component let param = event[methodName]; this[methodName](param); // call it } }

中撰写两个查询

一个用于从您的对象

返回{ methodName: 'method1', methodParam: someValue } private gridEvent(event) { let methodName = event.methodName; if(this[methodName]) { // method exists on the component let param = event.methodParam; this[methodName](param); // call it } }
TableViewRepository

之后,只需使用id title调用方法@Query("SELECT tv.id, tv.title FROM TableView tv") TableView findWithTitles(); 即可返回整个对象。