1

こんにちは、この 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;

何か案が?

4

1 に答える 1