java.lang.NoClassDefFoundError:org / hibernate / type / StandardBasicTypes - 可能是什么原因?

时间:2013-07-12 21:22:36

标签: java hibernate datetime jodatime

我有以下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。

不知道我错过了什么。

2 个答案:

答案 0 :(得分:4)

在版本4.0之前,

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>