我有以下Joda时间的实体。
@Column(name = "CLASS_START_DT")
@Type(type = "org.joda.time.contrib.hibernate.PersistentDateTime")
private DateTime classStartDate;
@Column(name = "CLASS_END_DT")
@Type(type = "org.joda.time.contrib.hibernate.PersistentDateTime")
private DateTime classEndDate;
它汇编得很好。没有问题。但是当我运行代码时,在将数据插入此实体时,它会抛出错误。
java.lang.NoClassDefFoundError: org/hibernate/type/StandardBasicTypes
...
..
Caused by: java.lang.ClassNotFoundException: org.hibernate.type.StandardBasicTypes
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Pom.xml条目:
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time-hibernate</artifactId>
<version>1.2</version>
</dependency>
也试过1.3版本。使用hibernate 3.2。
不知道我错过了什么。
答案 0 :(得分:4)
org.hibernate.type.StandardBasicTypes
不适用于Hibernate。尝试升级您的Hibernate版本
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.0.0.Final</version>
</dependency>
答案 1 :(得分:2)
如果你想使用org.hibernate.type.StandardBasicTypes,你需要一个版本的hibernate 3.6(我推荐你3.6.10)或者以上版本。随着版本的降低,它找不到好处。
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.10.Final</version>
</dependency>