CRUD を使用して、データベース内の特定の値にアクセスしたい。私が試したのは:
Query query = em.createNativeQuery("select o from Table o where o.IDfield= '938'");
Table o = (Table)query.getSingleResult();
しかし、これは失敗します。
助言がありますか?
CRUD を使用して、データベース内の特定の値にアクセスしたい。私が試したのは:
Query query = em.createNativeQuery("select o from Table o where o.IDfield= '938'");
Table o = (Table)query.getSingleResult();
しかし、これは失敗します。
助言がありますか?
select は jpql クエリのように見えるため、ネイティブ クエリとしてデータベースに直接渡されると機能しません。createQuery
代わりにメソッドを使用できます。次のように、エンティティで宣言された名前付きのパラメーター化されたクエリを使用することをお勧めします。
@Entity
@NamedQueries({@NamedQuery(name="MyEntity.findById", query="select o from MyEntity o where o.IDfield = :id"})
public class MyEntity {
@Id
private String IDfield;
}
...
MyEntity entity = (MyEntity)em.createNamedQuery("MyEntity.findById").setParameter("id", "938").getSingleResult();