jan*_*ola 6 java generics jpa spring-data
我有一些域对象:
@Entity
public class Log {
}
@Entity
public class LogLetter extends Log {
}
@Entity
public class LogAction extends Log {
}
Run Code Online (Sandbox Code Playgroud)
我想只有一个存储库,它允许我获取Log的孩子.
我能从头到尾做这样的事吗?
public interface LogRepository extends CrudRepository<Log, Long> {
@Query("select from ?1)
public <T> List<T> getLog(Class<T> clazz);
}
Run Code Online (Sandbox Code Playgroud)
并调用此方法:
List<LogLetter> logLetters = getLog(LogLetters.class);
Run Code Online (Sandbox Code Playgroud)
是否存在任何其他方法来做我所描述的?
我认为它不可能开箱即用(特别是考虑到您不能在 中使用参数from),但您可以将其实现为自定义方法(请参阅1.4. 自定义实现):
public <T> List<T> getLog(Class<T> clazz) {
return em.createQuery("from " + clazz.getSimpleName()).getResultList();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1118 次 |
| 最近记录: |