2012-05-08 4 views
3

MySql DBに日付をYYYY-mm-dd hh:mm:ss形式で挿入する際に問題が発生しています。 はDBにdatetime型のファイルです。hqlを使用してMySqlのdatetimeフィールドを設定する方法

私はそれを試してみました:ここ

Calendar calendar = Calendar.getInstance(); 
calendar.setTime(new Date()); 
calendar.set(Calendar.MINUTE, startMinute); 
calendar.set(Calendar.SECOND,01); 
Date startTime = calendar.getTime(); 

String hqlUpdate = "update challenge set start_time = :startTime where challenge_id = :id"; 
sessionFactory.getCurrentSession().createSQLQuery(hqlUpdate) 
           .setDate("startTime", startTime) 
           .setInteger("id", id).executeUpdate(); 
+0

- challangeは、あなたが @Temporal プライベート日のstart_timeを使用していました。 エラーはどうなりますか? – Sanath

+0

try catchブロックを追加して例外を捕捉して、データの保存を妨げる問題を見つけようとします。 – Sanath

+0

はいstart_timeで@Temporal(javax.persistence.TemporalType.TIMESTAMP)があり、DBでは私は唯一の日付hh:mm:ssは00:00:00いつも – Romi

答えて

0

が、私は特に休止状態に渡す前のSimpleDateFormatを使用して日付オブジェクトをフォーマットしようとしています。これが機能するかどうか確認してください。

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
Calendar calendar = Calendar.getInstance(); 
calendar.setTime(new Date()); 
calendar.set(Calendar.MINUTE, startMinute); 
calendar.set(Calendar.SECOND,01); 
Date startTime = dateFormat.parse(dateFormat.format(calendar.getTime();)); 

String hqlUpdate = "update challenge set start_time = :startTime where challenge_id = :id"; 
sessionFactory.getCurrentSession().createSQLQuery(hqlUpdate) 
          .setDate("startTime", startTime) 
          .setInteger("id", id).executeUpdate(); 
2

の使用setParameter()は、次を使用しようとするとそれは私のために動作します。あなたのエンティティで

.setTimestamp("startTime", startTime); 
+0

それは私を助けてくれてありがとう....... –

関連する問題