使用休眠。我现在正在学习这项技术。不知道我错在哪里...请对此进行指导..
尝试将列从 - TIMESTAMP() 类型的 db 映射到 Pojo 变量时,我看到上述错误......我尝试将变量类型更改为日期...日历。。。时间戳。。这里什么都行不通...问题似乎出在列的映射上...非常感谢对此的任何帮助...
我的pojo课程:
public class Pojo_****
{ .........
private Date C_TimeStamp;
private Date L_TimeStamp;
}
我的数据库表:
Table_****
..........
C_TimeStamp TIMESTAMP(6)
L_TimeStamp TIMESTAMP(6)
我的配置 xml:
Pojo_****.hbm.xml
......
<property name="C_TimeStamp" column="C_TimeStamp" />
<property name="L_TimeStamp" column="L_TimeStamp" />
错误日志:
In Main method of MainApp...
Mar 9, 2016 2:48:14 PM org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.2 cr4
Mar 9, 2016 2:48:14 PM org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
Mar 9, 2016 2:48:14 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
Mar 9, 2016 2:48:14 PM org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
Mar 9, 2016 2:48:15 PM org.hibernate.cfg.Configuration configure
INFO: configuring from resource: hibernate.cfg.xml
Mar 9, 2016 2:48:15 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource: hibernate.cfg.xml
Mar 9, 2016 2:48:15 PM org.hibernate.cfg.Configuration addResource
INFO: Reading mappings from resource: Pojo_****.hbm.xml
Mar 9, 2016 2:48:15 PM org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
INFO: Mapping class: Pojo_****-> Table_****
Mar 9, 2016 2:48:15 PM org.hibernate.cfg.Configuration doConfigure
INFO: Configured SessionFactory: null
Failed to create sessionFactory object.org.hibernate.MappingException: Could not determine type for: Timestamp, for columns: [org.hibernate.mapping.Column(L_TimeStamp)]
Exception in thread "main" java.lang.ExceptionInInitializerError
at tutorialspoint.example.MainApp.main(MainApp.java:29)
Caused by: org.hibernate.MappingException: Could not determine type for: Timestamp, for columns: [org.hibernate.mapping.Column(L_TimeStamp)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:266)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:253)
at org.hibernate.mapping.Property.isValid(Property.java:185)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:410)
at org.hibernate.mapping.RootClass.validate(RootClass.java:192)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1026)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1211)
at tutorialspoint.example.MainApp.main(MainApp.java:21)
您是否尝试过在 .hbm.xml 文件中添加 type="timestamp",如下所示?
<property name="C_TimeStamp" column="C_TimeStamp" type="timestamp" />
<property name="L_TimeStamp" column="L_TimeStamp" type="timestamp" />
据我所知,时间在 xml 配置中不被视为基本类型,因此应该是映射文件的一部分。
尝试一下,将日期时间填充到变量中。我在项目中遇到了同样的问题,因此得到了解决。
Pojo_Class obj_Pojo = new Pojo();
try {
//Or Pass any Date Object.
obj_Pojo.setC_TimeStamp(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse(String.valueOf(new Date().getTime())));
} catch (ParseException e) {
v_objBorrower.setCreationDate(new Date());
}
注意:将数据库列更改为 DateTime
。如果不存在任何配置问题,这可能会对您有所帮助。