我的数据库用的是MSSQL2005,现在在处理日志管理那块东西。日志表中有一个字段是用来记录操作时间的。我在hibernate中xxx.hbm.xml中做了如下配置: <property name="smTime" type="java.sql.Timestamp">
<column name="SmTime" length="23" not-null="true" default="CURRENT_TIMESTAMP"/>
</property>然后再session中存save这个日志的信息。
但是报出了这样的异常:org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.xxx.xx.model.SmLog
at org.hibernate.id.Assigned.generate(Assigned.java:33)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:91)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:530)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:518)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:514)
...
这个异常是我这边hibernate配得不对,还是数据库表本来就有自动生成时间功能(比如起冲突之类)的原因?
我对sql2005不太熟悉,希望各位大侠指点一二,不胜感激。
<column name="SmTime" length="23" not-null="true" default="CURRENT_TIMESTAMP"/>
</property>然后再session中存save这个日志的信息。
但是报出了这样的异常:org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.xxx.xx.model.SmLog
at org.hibernate.id.Assigned.generate(Assigned.java:33)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:91)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:530)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:518)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:514)
...
这个异常是我这边hibernate配得不对,还是数据库表本来就有自动生成时间功能(比如起冲突之类)的原因?
我对sql2005不太熟悉,希望各位大侠指点一二,不胜感激。
<column name="SmTime" length="23" not-null="true" default="CURRENT_TIMESTAMP"/>
</property>这样的代码能解决问题吗(我想在数据库表添加一条记录时,数据库自动创建时间,不需要手动添加)