2015-04-04 132 views
0

我试图在HSQLDB中的表的列中插入日期类型条目。问题是我使用Hibernate来这样做,任何人都可以请帮助我如何做到这一点?如何使用Hibernate在HSQLDB表中的日期类型列中插入日期?

表如下:

CREATE TABLE TEST(
WORKINGDATE DATE NOT NULL 
) 

豆文件如下:

import java.util.Date; 

public class Test { 

    private Date workingDate; 


    public Date getWorkingDate() { 
     return workingDate; 
    } 

    public void setWorkingDate(Date workingDate) { 
     this.workingDate = workingDate; 
    } 

    @Override 
    public String toString() { 
     return "Test [workingDate=" + workingDate + "]"; 
    } 

} 

XML映射如下:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
     "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
    <class name="bean.hibpackage.Test" table="TEST"> 

     <property name="workingDate" column="WORKINGDATE" type="date" /> 

    </class> 
</hibernate-mapping> 

现在测试场景是:

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction; 
import org.hibernate.cfg.Configuration; 

import bean.hibpackage.Test; 

public class TestHibernate2 { 

    /** 
    * @param args 
    * @throws ParseException 
    */ 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Test test = new Test(); 

     String date_s = "2015-02-22"; 

     { 
     //How to format the above given string to a date type so that the 
     //program will work 
     } 

     test.setWorkingDate(?); 

     Session ses = null; 

     try { 
      SessionFactory sessions = null; 
      sessions = new Configuration().configure().buildSessionFactory(); 

      ses = sessions.openSession(); 

      Transaction tran = ses.beginTransaction(); 

      ses.save(test); 

      tran.commit(); 
     } finally { 
      ses.close(); 
     } 

    } 

} 

回答

0

你只需要解析Date字符串表示:

String date_s = "2015-02-22"; 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
test.setWorkingDate(sdf.parse(date_s)); 
+0

感谢弗拉德,这是第一件事,我试过了,&当然是解决方案。但问题出在我的数据库表和休眠XML映射类,因为你可以注意到我的XML文件中没有ID字段,我发现Hibernate不允许连接到没有ID字段的数据库表,即连接一个没有主键/复合键列的数据库表。一旦我做到了,我很好走!谢谢,虽然因为这是你的回复,迫使我做一个浅层次的根本原因分析... – 2015-04-07 17:02:23

+0

@DhirendraVerma:你会考虑接受这个答案吗?为此,请单击答案左侧的刻度线,使其变为绿色。 – halfer 2015-09-03 21:15:04

相关问题