0

CRUD を使用して、データベース内の特定の値にアクセスしたい。私が試したのは:

Query query = em.createNativeQuery("select o from Table o where o.IDfield= '938'"); 
Table o = (Table)query.getSingleResult();

しかし、これは失敗します。

助言がありますか?

4

1 に答える 1

0

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();
于 2011-04-06T13:48:42.900 に答える