【发布时间】:2012-07-08 17:15:29
【问题描述】:
我有一些域对象:
@Entity
public class Log {
}
@Entity
public class LogLetter extends Log {
}
@Entity
public class LogAction extends Log {
}
我只想拥有一个存储库,让我可以获取 Log 的子代。
我可以在理论上做这样的事情吗?
public interface LogRepository extends CrudRepository<Log, Long> {
@Query("select from ?1)
public <T> List<T> getLog(Class<T> clazz);
}
并调用此方法:
List<LogLetter> logLetters = getLog(LogLetters.class);
是否存在其他方法来执行我所描述的操作?
【问题讨论】:
-
为什么不直接创建
LogLetterRepository和LogActionRepository?它们很便宜,您可以免费获得findAll。 -
这两个域对象只是一个例子,实际上我有 15 个这样的对象,为每个域对象创建新的存储库并不是太优雅。
标签: java generics jpa spring-data