Как создать запрос 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 

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