我有一组从单个超类继承的类:
Super
|
+------+-------+
Aaaa Bbbb Cccc
然后每个 Aaaa、Bbbb、Cccc 都应该包含方法 findByTag。问题是我无法笼统地定义它。以下示例为 Aaaa 定义了特定的 findByTag。
public interface AaaaRepository extends SuperRepository<Aaaa> {
@Query("select distinct a from Aaaa a " +
"join a.tags t " +
"join fetch a.locale where t = ?1")
public List<Event> findByTag(Tag t);
}
请注意,超类是@MappedSuperclass,并且在数据库中没有自己的表。
我想在查询中使用某种“超级”,它将在每个类中被其名称替换。
我的第二个问题是我不知道如何强制 @ElementCollection 被急切地获取。我必须始终在查询中明确地说“join fetch”。如果它没有被提取,一旦事务完成,我就无法访问那些我没有明确提取的对象。(LazyFetch 异常...)
谢谢