Как создать запрос hql с левым соединением, используя поле из расширяющегося объекта

У меня этот класс называется Locatable:

@Entity @Table(name = "locatable") @PrimaryKeyJoinColumn(name = "device_id", referencedColumnName = "id") open class Locatable: Device() { @Basic @Column(name = NAME_COLUMN) var name: String? = null } 

как вы можете видеть Locatable extended Device, устройство выглядит следующим образом:

 @Entity @Table(name = "device") @Inheritance(strategy = InheritanceType.JOINED) abstract class Device { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGen") @SequenceGenerator(name = "sequenceGen", sequenceName = "devices_id_seq", allocationSize = 1) @Column(name = ID_COLUMN) open var id: Long = 0 @Basic @Column(name = GROUP_COLUMN) open var groupId: Long = 0 } 

Теперь я пытаюсь сделать репо с помощью hql следующим образом:

 interface LocatableRepo : JpaRepository<Locatable, Long> { @Query("SELECT l FROM Locatable l LEFT JOIN FETCH l.Device WHERE l.groupId IN ?1") fun getByGroupIdIn(ids: List<Long>): List<Locatable> } 

но по какой-то причине он не работает для меня … возможно, я делаю это неправильно, спасибо

groupdId является сущностью Device, поэтому он должен быть

 LEFT JOIN FETCH l.Device d WHERE d.groupId 

вы указываете имя для соединения устройства и используете его при ссылке на столбец, принадлежащий устройству

Intereting Posts
Kotlin список vs массива MutableLiveData с многократным укладом Kotlin Generic не работает Настройка Gradle с Kotlin Kotlin getParcelableArray из комплекта намерений не может передать его пользовательскому типу Не удается разрешить строку, переданную параметру vararg в функции расширения Как решить эту «нерешенную ссылку», когда я определил эту функцию? Kotlin: зачем мне инициализировать var с помощью пользовательского getter? Kotlin: Как сделать меню панели инструментов с помощью Anko DSL? Изменить текучесть <Список <Obj1 >> в текущую <Список <Obj2 >> в комнате Ошибка «Переменная должна быть инициализирована» при делегировании инициализированному свойству View имеет значение null в onCreateView android Оператор RxJava для переключения Как изменить правила подсветки синтаксиса для переменной с модификатором lateinit в IntelliJ (Kotlin)? Внедрение интерфейса анонимно в Kotlin приводит к ошибке «не имеет конструкторов» Интерфейс фабрики Kotlin с дженериками