У меня есть набор классов, которые наследуются от одного суперкласса:
Super
|
+------+-------+
Aaaa Bbbb Cccc
Каждый из Aaaa, Bbbb, Cccc должен содержать метод findByTag.Проблема в том, что я не могу определить это вообще.В следующем примере определяется конкретный findByTag для Aaaa.
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.Я должен всегда явно говорить "присоединиться к выборке" в запросе.Если он не получен, после завершения транзакции я не могу получить доступ к тем объектам, которые я явно не получил.(LazyFetch Исключения ...)
Спасибо