2
JPA.em("default").createQuery("insert into USER (FULLNAME, EMAIL, USERNAME, PASSWORD) " + " VALUES (\'"+fullname+"\',\'"+email+"\',\'"+username+"\',\'"+password+"\');");

それは間違ったクエリですか?このエラーが発生します:

[IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: VALUES near line 1, column 57 [insert into USER (FULLNAME, EMAIL, USERNAME, PASSWORD) VALUES ('Doniyor','ikbola-86@bk.ru','jurabayev','er');]]

なぜこれが起こっているのかわかりません、クエリ文字列は実際には大丈夫ですよね?

助けていただければ幸いです!

ありがとう

4

3 に答える 3

13

私はあなたが使うべきだと思います

.createNativeQuery(...);

それ以外の

.createQuery(...);

でもよくわかりません。

注釈を使用している場合

@Query(value = "your_query_here", nativeQuery = true)

于 2012-06-20T17:28:14.830 に答える
1

クエリにJPAQLの代わりにSQLステートメントを使用しようとしているように見えます。これは、とにかくInsert Intoがあるとは思われませんが、私自身はPlay Frameworkを初めて使用するため、誤解される可能性があります。

JPAを使用しているので、挿入したいユーザーを作成し、そのオブジェクトを永続化することが、あなたがすべきことだと思います。

したがって、コードは次の行に沿って表示されます。

User u = new User('Doniyor','ikbola-86@bk.ru','jurabayev','er');
JPA.em("default").persist(u);
于 2012-06-20T17:32:33.257 に答える
0

これも行います......。

String hql = String.format("insert into attendence(slip_change_cntr,roll_no)values(0,"+a+")");
    Query query = sessionHb.createSQLQuery(hql);
    return query.executeUpdate();
于 2013-09-30T10:49:37.573 に答える