第9章のセクション9.2にある例に従って、休止状態を使用してクエリを作成しようとしています
私の試みとの違いは、Spring MVC 3.0 を使用していることです。これが、私が作成したメソッドと一緒に私の Address クラスです。
@RooJavaBean
@RooToString
@RooEntity
@RooJson
public class Address {
@NotNull
@Size(min = 1)
private String street1;
@Size(max = 100)
private String street2;
private String postalcode;
private String zipcode;
@NotNull
@ManyToOne
private City city;
@NotNull
@ManyToOne
private Country country;
@ManyToOne
private AddressType addressType;
@Transient
public static List<Tuple> jqgridAddresses(Long pID){
CriteriaBuilder builder = Address.entityManager().getCriteriaBuilder();
CriteriaQuery<Tuple> criteria = builder.createTupleQuery();
Root<Address> addressRoot = criteria.from( Address.class );
criteria.multiselect(addressRoot.get("id"), addressRoot.get("street1"), addressRoot.get("street2"));
criteria.where(builder.equal(addressRoot.<Set<Long>>get("id"), pID));
return Address.entityManager().createQuery( criteria ).getResultList();
}
}
上記で呼び出されたメソッドjqgridAddresses
がフォーカスです。Path idPath = addressRoot.get( Address_.id );のようなことを言うと、「パス」を使用しないことにしました。ドキュメントのセクション 9.2 のように、PathAddress_.idのものはコンパイル エラーを生成します。
上記のメソッドはTuple
、何かを含む必要がある場合でもサイズがゼロであるため、タイプの空のリストを返します。これは、クエリが失敗したことを示しています。誰かが私にアドバイスしてもらえますか。