mysql - Insert with Hibernate native query does not work for java.util.Date -
i using hibernate jpa , spring mysql database , want insert using sql statement this:
date savedate = new date(); java.sql.timestamp timestampdate = new timestamp(savedate.gettime()); query persistablequery = entitymanager.createnativequery("insert task_assessment (active_flag, assessment_date, description, " + "title, needs_level_id, patient_id, user_id) values (" + true +", " + timestampdate + ", " + description + ", " + title + ", " + needslevelid + ", " + patientid + ", " + userid + " )"); persistablequery.executeupdate();
but after running following error:
warn : org.hibernate.util.jdbcexceptionreporter - sql error: -11, sqlstate: 37000 error: org.hibernate.util.jdbcexceptionreporter - unexpected token: 15 in statement [insert task_assessment (active_flag, assessment_date, description, title, needs_level_id, patient_id, user_id) values (true, 2011-03-01 15?, description, , 193, 1, 3 )]
could me on please?
ps. aware of using hibernate in non-native way, need use native way. of insert ...from... , don't think help.
finally think problem date. how guys pass on mysql datetime
type using java?
update:
the following works fine, guess java date mysql datetime conversion problem.
("insert task_assessment " + "(active_flag, assessment_date, description, title, " + "needs_level_id, patient_id, user_id) " + "values (true, 1999-12-22, '" + description + "', '" + title + "', " + needslevelid+", " + patientid + ", " + userid + ")");
could please me on how convert java.util.date
mysql datetime
?
don't use concatenation insert data queries, use parameters instead. solves problem wrong representation of values, many other problems:
entitymanager.createnativequery( "insert task_assessment (active_flag, assessment_date, description, " + "title, needs_level_id, patient_id, user_id) values (?, ?, ?, ?, ?, ?, ?)") .setparameter(1, true) .setparameter(2, savedate, temporaltype.timestamp) // since want timestamp .setparameter(3, description) .setparameter(4, title) .setparameter(5, needslevelid) .setparameter(6, patientid) .setparameter(7, userid) .executeupdate();
Comments
Post a Comment