开发者社区 问答 正文

Hibernate 自动生成日期值

 <class name="com.traitswu.zone.entity.User" table="user">
        <id name="id" type="int" column="id">
            <generator class="native"/>
        </id>
        <property name="createDate" generated="insert" not-null="true" type="java.util.Date">
            <column name="createDate" sql-type="timestamp" default="CURRENT_TIMESTAMP"/>
        </property>
        <property name="modifiedDate" generated="always" not-null="true" type="java.util.Date">
            <column name="modifiedDate" sql-type="timestamp" default="CURRENT_TIMESTAMP"/>
        </property>
        <property name="userName" type="string" not-null="true" length="50" unique-key="account_unique"/>
        <property name="passWord" type="string" not-null="true" length="50" unique-key="account_unique"/>
    </class>

为什么没有自动生成日期值(exception: Caused by: java.sql.SQLException: Field 'createDate' doesn't have a default value)

展开
收起
云栖技术 2016-06-02 15:04:59 2763 分享 版权
1 条回答
写回答
取消 提交回答
  • 社区爱好者,专为云栖社区服务!
    string zytime = DateTime.Now.ToString("yyyMMdd");//取出当前时间
              
                string sql1 = "select top 1 * from aq_fixcheck where convert(varchar(12),cktime,112)='"+zytime+"'order by sid desc";
                   //Convert函数判断数据库记录时间和当前时间对比,相等表示为今日,按编号倒序,读取当日最新记录        
                 DataTable dt = dao.da.GetTable(sql1);
                 
                if (dt.Rows.Count ==0)
                {
    
                    sid.Text = "10" + DateTime.Now.ToString("yyyMMdd") + "001"; //当数据库里没有今日记录,则把编码尾数设为001,否则
    
                }
                else
                {
                    int bianhao = Convert.ToInt32(dt.Rows[0]["sid"].ToString().Substring(10, 3));
                    sid.Text = "10" + DateTime.Now.ToString("yyyMMdd") + "00" + Convert.ToString(bianhao + 1);//否则读取最新记录编码+1做为下一条记录的尾数.
    
    2019-07-17 19:24:56
    赞同 展开评论
问答分类:
问答标签:
问答地址: