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

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -