Java Hibernate 4:ViolatedConstraintNameExtractor异常

Java Hibernate 4:ViolatedConstraintNameExtractor异常,java,hibernate,maven,Java,Hibernate,Maven,我正试图在Maven项目中设置Hibernate4。 它不起作用,快把我逼疯了 我得到一个例外: java.lang.NoClassDefFoundError: org/hibernate/exception/ViolatedConstraintNameExtracter 以下是pom.xml文件中声明的依赖项: <dependency> <groupId>org.hibernate</groupId> <artifactId>

我正试图在Maven项目中设置Hibernate4。 它不起作用,快把我逼疯了

我得到一个例外:

java.lang.NoClassDefFoundError: org/hibernate/exception/ViolatedConstraintNameExtracter
以下是pom.xml文件中声明的依赖项:

 <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.3.1.Final</version>
</dependency>
<dependency>
    <groupId>org.xerial</groupId>
    <artifactId>sqlite-jdbc</artifactId>
    <version>3.7.2</version>
</dependency>
<dependency>
    <groupId>org.hibernate.dialect</groupId>
    <artifactId>sqlite-dialect</artifactId>
    <version>0.1.0</version>
    <scope>provided</scope>
</dependency>
我只有一个名为“用户”的测试模型,并用Hibernate注释装饰

你能帮我吗?干杯

更新:堆栈跟踪

Initial SessionFactory creation failedjava.lang.NoClassDefFoundError:    org/hibernate/exception/ViolatedConstraintNameExtracter
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.matteopacini.RestaurantManager.HibernateUtil.<clinit>(HibernateUtil.java:27)
at com.matteopacini.RestaurantManager.App.main(App.java:14)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/exception/ViolatedConstraintNameExtracter
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at  org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:242)
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor    (StrategySelectorImpl.java:125)
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelectorImpl.java:155)
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:136)
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:78)
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:68)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:165)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843)
at com.matteopacini.RestaurantManager.HibernateUtil.<clinit>(HibernateUtil.java:21)
... 1 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.exception.ViolatedConstraintNameExtracter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 16 more
初始会话工厂创建失败java.lang.NoClassDefFoundError:org/hibernate/exception/ViolatedConstraintNameExtractor
线程“main”java.lang.ExceptionInInitializeError中出现异常
位于com.matteopacini.RestaurantManager.HibernateUtil.(HibernateUtil.java:27)
位于com.matteopacini.RestaurantManager.App.main(App.java:14)
原因:java.lang.NoClassDefFoundError:org/hibernate/exception/ViolatedConstraintNameExtractor
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(未知源)
位于org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:242)
位于org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:125)
位于org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelectorImpl.java:155)
位于org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:136)
位于org.hibernate.engine.jdbc.dialogue.internal.dialogueFactoryImpl.ConstructDialogue(dialogueFactoryImpl.java:78)
位于org.hibernate.engine.jdbc.dialogue.internal.dialogueFactoryImpl.buildDialogue(dialogueFactoryImpl.java:68)
位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.configure(jdbcservicesiml.java:165)
位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
位于org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843)
位于com.matteopacini.RestaurantManager.HibernateUtil.(HibernateUtil.java:21)
... 还有一个
原因:java.lang.ClassNotFoundException:org.hibernate.exception.ViolatedConstraintNameExtractor
位于java.net.URLClassLoader$1.run(未知源)
位于java.net.URLClassLoader$1.run(未知源)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于sun.misc.Launcher$AppClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
... 还有16个

在Hibernate 4.X中,类
ViolatedConstraintNameExtractor
从包
org.Hibernate.exception
移动到
org.Hibernate.exception.spi
()。错误消息表明未找到
org/hibernate/exception/ViolatedConstraintNameExtractor


这意味着您的运行时类路径中至少有一个库请求旧的3.X Hibernate类。您应该使用Maven或Eclipse检查依赖项。

您使用的方言与Hibernate 4不兼容。请参阅:它使用了
org.hibernate.exception.ViolatedConstraintNameExtracter
,它已在hibernate 4中移动到
org.hibernate.exception.spi.ViolatedConstraintNameExtracter

堆栈跟踪是什么?您确定我在Maven central上没有找到的sqlite方言与最近的Hibernate 4.3.1兼容吗?未找到的类位于hibernate 4中的org.hibernate.exception.spi中,但在hibernate 3.6中位于org.hibernate.exception中。我发布了堆栈跟踪。sqlite方言repo:。我不知道它是否兼容,但它是唯一最新的。您的类路径中缺少一个jar或有两个不同的版本。谢谢!这让我发疯:D
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();        
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
Initial SessionFactory creation failedjava.lang.NoClassDefFoundError:    org/hibernate/exception/ViolatedConstraintNameExtracter
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.matteopacini.RestaurantManager.HibernateUtil.<clinit>(HibernateUtil.java:27)
at com.matteopacini.RestaurantManager.App.main(App.java:14)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/exception/ViolatedConstraintNameExtracter
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at  org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:242)
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor    (StrategySelectorImpl.java:125)
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveDefaultableStrategy(StrategySelectorImpl.java:155)
at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.resolveStrategy(StrategySelectorImpl.java:136)
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:78)
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:68)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:165)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843)
at com.matteopacini.RestaurantManager.HibernateUtil.<clinit>(HibernateUtil.java:21)
... 1 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.exception.ViolatedConstraintNameExtracter
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 16 more