`

用Maven创建第一个Hibernate工程

 
阅读更多

一、环境:

操作系统:windows 7旗舰版 64bit

IDE:eclipse Luna Release (4.4.0)

创建第一个HIbernate+Maven工程时,遇到如下异常:

hibernate-core: 3.5.4-Final

(1)hibernate.cfg.xml路径问题:

Exception in thread "main" org.hibernate.HibernateException: /hibernate.cfg.xml not found

原因主要是HIbernate的默认配置文件hibernate.cfg.xml路径不可变。将其放到src/main/java/这个目录下即可,maven install会自动target/classes目录下面;如下图所示:


 

(2)添加二级缓存时,类找不到问题:

Exception in thread "main" org.hibernate.HibernateException: could not instantiate RegionFactory [org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge]
	at org.hibernate.cfg.SettingsFactory.createRegionFactory(SettingsFactory.java:402)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:270)
	at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2163)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2159)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1383)
	at com.zjh.practice.dal.hibernate.simpleDemo.cache.SecondSessionCache.main(SecondSessionCache.java:31)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
	at org.hibernate.cfg.SettingsFactory.createRegionFactory(SettingsFactory.java:397)
	... 5 more
Caused by: org.hibernate.cache.CacheException: could not instantiate CacheProvider [org.hibernate.cache.EhCacheProvider]
	at org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge.<init>(RegionFactoryCacheProviderBridge.java:66)
	... 10 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.EhCacheProvider
	at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:259)
	at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:192)
	at org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge.<init>(RegionFactoryCacheProviderBridge.java:63)
	... 10 more

 最后发现是hibernate-core-3.5.4-Final.jar里面已经不包括org.hibernate.cache.EhCacheProvider,需要加入hibernate-ehcache-3.5.4-Final.jar这个包的依赖。完整的pom.xml如下:

<dependencies>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>3.5.4-Final</version>
		</dependency>
		<dependency>
			<groupId>jboss</groupId>
			<artifactId>javassist</artifactId>
			<version>3.4.ga</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.7</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.31</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-ehcache</artifactId>
			<version>3.5.4-Final</version>
		</dependency>
	</dependencies>

 (3)

Exception in thread "main" org.hibernate.cache.CacheException: net.sf.ehcache.CacheException: com.zjh.practice.dal.hibernate.simpleDemo.entity.BoxCache: Could not create disk store. Initial cause was null
	at org.hibernate.cache.EhCacheProvider.buildCache(EhCacheProvider.java:101)
	at org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge.buildEntityRegion(RegionFactoryCacheProviderBridge.java:104)
	at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:291)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385)
	at com.zjh.practice.dal.hibernate.simpleDemo.cache.SecondSessionCache.main(SecondSessionCache.java:26)
Caused by: net.sf.ehcache.CacheException: com.zjh.practice.dal.hibernate.simpleDemo.entity.BoxCache: Could not create disk store. Initial cause was null
	at net.sf.ehcache.store.DiskStore.<init>(DiskStore.java:164)
	at net.sf.ehcache.Cache.createDiskStore(Cache.java:577)
	at net.sf.ehcache.Cache.initialise(Cache.java:549)
	at net.sf.ehcache.CacheManager.addCacheNoCheck(CacheManager.java:707)
	at net.sf.ehcache.CacheManager.addCache(CacheManager.java:697)
	at net.sf.ehcache.CacheManager.addCache(CacheManager.java:634)
	at org.hibernate.cache.EhCacheProvider.buildCache(EhCacheProvider.java:94)
	... 4 more
Caused by: java.lang.NullPointerException

 在ehcache.xml中增加如下配置:

	<cache name="com.zjh.practice.dal.hibernate.simpleDemo.entity.Box" maxElementsInMemory="5000"
		eternal="true" overflowToDisk="false" />

 

  • 大小: 17.2 KB
分享到:
评论

相关推荐

    spring_hibernate工程

    "Spring_Hibernate工程"是一个整合了Spring框架和Hibernate ORM(对象关系映射)工具的项目。这个工程展示了如何在Java应用程序中使用这两种技术来构建高效、可维护的后端系统。Spring是一个强大的应用框架,提供了...

    JAVA 使用hibernate配置实例

    通过这个实例,你将掌握在Java项目中使用Hibernate的基本流程,无论是普通Java工程还是Maven工程,都能轻松实现对数据库的操作。在实际开发中,你可以根据项目需求进一步优化配置,比如加入事务管理、查询优化等,以...

    Maven4MyEclipse 搭建ssh2+extjs项目(4)struts2.3.4+hibernate4.2.0+spring3.1.2

    在本项目中,我们主要探讨如何使用Maven4MyEclipse搭建一个集成Struts2.3.4、Hibernate4.2.0和Spring3.1.2的SSH2(Struts2、Spring、Hibernate)项目,并结合ExtJS进行前端开发。这是一个经典的Java企业级应用架构,...

    第一个Hibernate with Annotation程式(转)

    【标题】:“第一个Hibernate with Annotation程式(转)” 在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发人员使用面向对象的编程方式来操作数据库,而无需直接编写SQL语句。这个标题...

    maven的基本使用和配置

    Maven 是 Apache 软件基金会支持的一个项目管理工具,主要用于 Java 项目的构建与依赖管理。它通过一个项目对象模型(POM)来管理项目的构建、报告和文档。Maven 的设计理念是“约定优于配置”,它为项目的构建过程...

    商城sql文件+maven工程仓库

    标题中的“商城sql文件+maven工程仓库”表明这是一个与电商项目相关的资源包,包含了数据库脚本和Maven工程的依赖管理部分。这个资源包对于理解并构建一个基于Java的电商平台至关重要,因为它涉及到数据存储和项目...

    hibernate的jar包

    Hibernate是一个强大的Java持久化框架,它为开发人员提供了一种简单、高效的方式来管理数据库操作。在Java应用程序中,Hibernate作为对象关系映射(ORM)工具,使得开发者可以通过处理Java对象来间接操作数据库,...

    Hibernate泛型Dao

    在传统的Hibernate使用中,针对每个实体类,我们都需要创建一个对应的Dao(Data Access Object)接口及其实现类,这无疑增加了大量重复的代码。泛型Dao的出现,就是为了解决这个问题,它允许开发者通过泛型来定义一...

    hibernate4 所有jar包

    Hibernate 4 是一款广泛使用的Java持久化框架,它允许开发者以对象关系映射(ORM)的方式操作数据库。这个压缩包包含所有与Hibernate 4相关的jar文件,确保了开发者在使用Hibernate进行开发时能够得到完整的支持。 ...

    Hibernate_mvc

    【标题】"Hibernate_mvc"项目是一个整合了Hibernate ORM框架与SpringMVC的Web应用程序示例,使用Maven作为构建工具。这个项目旨在提供一个基础的、可扩展的平台,帮助开发者快速搭建基于Java的Web应用,特别是对于...

    java逆向工程的简单示例

    "生成代码"这个标签暗示了在压缩包中可能包含了一个自动化脚本或工具,该工具可能用于从数据库模式自动创建Java实体类、DAO(数据访问对象)接口和实现,以及相关的SQL映射文件。例如,使用Hibernate的hibernate-...

    Hibernate流程

    **反向工程生成实体类和映射文件**: 描述中的"反向生成实体类第一步"、"反向生成实体类和映射文件第二步"、"反向生成实体类和映射文件第三步.bmp",这通常是通过MyEclipse或其他IDE工具来完成的,它们可以帮助开发者...

    [SSH+Maven+Bootstrap视频教程]_第 四十八 讲.zip

    在本节 "[SSH+Maven+Bootstrap视频教程]_第 四十八 讲" 中,我们将深入探讨如何在Java开发环境中整合Spring、Struts和Hibernate(SSH)框架,并结合Maven构建工具以及Bootstrap前端框架来提升项目的开发效率和用户...

    hibernate_plugs_2.zip

    1. **插件配置**:可能会有示例展示如何在Maven或Gradle等构建工具中添加和配置Hibernate插件,如Hibernate Tools,它提供了逆向工程、生成Java类、HQL查询编辑器等功能。 2. **实体类和映射文件**:展示如何创建...

    hibernate jar包

    这个JAR是使用Hibernate的基础,必不可少。 2. **数据库驱动**: 根据所使用的数据库,如MySQL、Oracle、PostgreSQL等,需要对应的数据库驱动JAR,例如`mysql-connector-java.jar`,`ojdbc.jar`等。这些驱动使...

    assignment2-login:为CZ3002创建的maven-archetype-webapp的Maven项目,高级软件工程任务2

    它被设计为"Maven-archetype-webapp",这是一个基于Maven的Web应用程序模板,意味着这个项目是用Java语言开发的Web应用,且使用了Maven作为构建工具。"为CZ3002创建的"可能表示这个项目是针对特定课程(可能是大学...

    SSH的简单工程框架

    在压缩包中,`index.jsp`通常是Web应用的入口页面,展示给用户的第一界面。`META-INF`目录包含有关应用的信息,如MANIFEST.MF文件,它记录了应用的元数据。`WEB-INF`目录包含Web应用的私有资源,如web.xml(部署描述...

    基于Java的SSH框架 物流配送管理系统,优秀毕业设计源代码,新手必看!

    - 数据库文件为conf目录下的db.properties,这是导入项目后需要看的第一个文件,也是你项目运行需要唯一注意的文件 - 项目启动前,看一下db.properties这个文件是不是和你本地的数据库统一(用户名以及密码),我...

    基于Java中SSH 框架的 物流配送管理系统.zip

    数据库文件为conf目录下的db.properties,这是导入项目后需要看的第一个文件,也是你项目运行需要唯一注意的文件 项目启动前,看一下db.properties这个文件是不是和你本地的数据库统一(用户名以及密码),我用的是...

Global site tag (gtag.js) - Google Analytics