こんにちは、この where と fetch クエリを書き込もうとしていますが、エラーが発生します
Query query = session.createQuery("from Device d where d.customerRefId=:customerId " +
"left join fetch d.tradeInOldDevice ");
query.setParameter("customerId", "myId");
Set<Device> customerDevices= (Set<Device>) query.list();
エラー:
2013-09-24 12:18:45,753 ERROR PARSER:56 - line 1:98: unexpected token: left
Thats デバイス エンティティ:
@Entity
@Table(name = "Devices")
public class Device implements Serializable, IHidingDeletable {
...
@ManyToOne(optional = true,fetch=FetchType.LAZY)
private Customer owningCompany
@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "tradeInOldDevice")
@Cascade(CascadeType.ALL)
private Device tradeInOldDevice;
..
そしてそれは顧客です:
public class Customer extends AbstractCustomer {...}
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "Customers")
@DiscriminatorColumn(name = "type")
public abstract class AbstractCustomer implements IVersionized, Serializable {
@Id
protected String customerRefId;
何か案が?