JavaでDaoインタフェースの実装クラスでinsert文を生成してるがエラーになる。
There was an unexpected error (type=Internal Server Error, status=500).
org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: values near line 1, column 57 [insert into kakeibo(date,koumoku,kingaku,syousai,bikou) values(date=:date,koumoku=:koumoku,kingaku=:kingaku,syousai=:syousai,bikou=:bikou)]
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: values near line 1, column 57 [insert into kakeibo(date,koumoku,kingaku,syousai,bikou)
DaoImpl
1@Repository 2public class KakeiboDaoImpl implements KakeiboDao<Kakeibo> { 3private static final long serialVersionUID = 1L; 4 private EntityManager entityManager; 5 public KakeiboDaoImpl() { 6 super(); 7 } 8 public KakeiboDaoImpl(EntityManager manager) { 9 this(); 10 entityManager = manager; 11 } 12 13/* 14*SQL生成 15*/ 16@SuppressWarnings({ "unchecked", "unlikely-arg-type" }) 17 public List<Kakeibo> insert(java.sql.Date date, String koumoku, int kingaku, String syousai, String bikou) { 18 StringBuilder qstr = new StringBuilder(); 19 qstr.append( 20 "insert into kakeibo(date,koumoku,kingaku,syousai,bikou) values(date=:date,koumoku=:koumoku,kingaku=:kingaku,syousai=:syousai,bikou=:bikou)"); 21 Query query = entityManager.createQuery(qstr.toString()); 22 query.setParameter("date", date); 23 query.setParameter("koumoku", koumoku); 24 query.setParameter("kingaku", kingaku); 25 query.setParameter("syousai", syousai); 26 query.setParameter("bikou", bikou); 27 return query.getResultList(); 28 } 29 30}
Dao
1public interface KakeiboDao<T> extends Serializable { 2 public List<T> insert(java.sql.Date date,String koumoku,int kingaku,String syousai,String bikou); 3}
insert into kakeibo(date,koumoku,kingaku,syousai,bikou) values("2020-02-02","",123,"",""); ↑コマンドプロンプトにはこれでinsertできます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/02/02 06:06
2020/02/02 08:45
退会済みユーザー
2020/02/02 08:52
退会済みユーザー
2020/02/02 13:43
2020/02/02 23:55