객체

2017-12-04 15 views
0

을 확장에서 필드를 사용하여 조인 왼쪽으로 HQL 쿼리를 만드는 방법은 위치 추적이라는 클래스는 한 :객체

@Entity 
@Table(name = "locatable") 
@PrimaryKeyJoinColumn(name = "device_id", referencedColumnName = "id") 
open class Locatable: Device() { 

@Basic 
@Column(name = NAME_COLUMN) 
var name: String? = null 
    } 

당신은 위치 추적 확장 장치를 볼 수있는, 장치는 다음과 같습니다

@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을 사용하여 repo를 만들려고 시도하고 있습니다.

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> 
} 

그러나 어떤 이유로 든 나를 위해 작동하지 않습니다 ... 아마 내가 잘못을 수행 감사합니다

답변

0

LEFT JOIN FETCH l.Device d WHERE d.groupId 

당신이 장치에 이름을 지정해야하므로 groupdId 엔티티 장치의 조인 및 사용하는 디바이스에 속하는 열을 참조 할 때

+0

의 작업 ...하지만 난이 작동하는지 생각하지 : 는 –

+0

은 내가 할 수 있다고 생각 "? l.groupId IN이 1 위치 추적 l로부터 리터 선택"만 배치 가능 확장 장치 기원전 –