1.HibernateSynchronizer中无法自动生成DAO的问题
HibernateSynchronizer是当前优秀的eclipse关于hibernate的插件。用它生成hbm文件后,通过此插件的Synchronize Files功能可以自动生成对应的pojo类,然而对应的DAO却没有自动生成。其实这个插件是具有自动生成DAO的功能的。打开生成的hbm文件,在文件接近开头的部分可以看到一下一行代码:
<meta attribute="sync-DAO">false</meta>
把false改成true,重新执行Synchronize Files功能,DAO类就同时生成了。
补充:用这个插件生成的Pojo有2个,而不是像Myeclipse中的hibernate功能只生成一个pojo类。原因如下:
事实上,当使用Hibernate Synchronizer时,如果你改变了映射文件,你不需要为更新相应的java文件而劳心费神。当你编辑映射文件时,和Eclipse采取的方法类似,该插件自动更新你的java代码。还不止于此,还提供了比Hibernate内建的代码生成工具更多的功能:它为每个映射对象创建一对类( a pair ofclasses),其中一个是基础类,当你改变映射内容时,它可以随意重写这个类;另一个类作为该基础类的子类,在子类中,你可以添加具体的商业逻辑和另一些代码。使用这个插件生成java代码时,不用象使用Hibernate内置的代码生成工具那样,担心其它代码(如商业逻辑的代码)会在你的眼皮底下消失。
(摘自zdnet china论坛的builder0)
2.在编写例子的时候发现,点击生成的Person.hbm.xml文件,Add Mapping Reference时,插件将hibernate.cfg.xml文件的
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
部分删除,并添加
<mapping resource="moonsky/hibernate/model/Person.hbm.xml" />
导致初始化(_RootDAO.initialize();)时报如下错误
2011-10-23 03:32:46,317 ERROR [org.hibernate.util.XMLHelper] - <Error parsing XML: /hibernate.cfg.xml(2) Document is invalid: no grammar found.>
2011-10-23 03:32:46,317 ERROR [org.hibernate.util.XMLHelper] - <Error parsing XML: /hibernate.cfg.xml(2) Document root element "hibernate-configuration", must match DOCTYPE root "null".>
Exception in thread "main" org.hibernate.MappingException: invalid configuration
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1535)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1476)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1462)
at moonsky.hibernate.model.base._BaseRootDAO.initialize(_BaseRootDAO.java:98)
at moonsky.hibernate.model.base._BaseRootDAO.initialize(_BaseRootDAO.java:88)
at moonsky.hibernate.model.base._BaseRootDAO.initialize(_BaseRootDAO.java:79)
at moonsky.hibernate.model.Test.main(Test.java:13)
Caused by: org.xml.sax.SAXParseException: Document is invalid: no grammar found.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1532)
... 6 more
解决方法,不使用Add Mapping Reference,改成手工添加
<mapping resource="moonsky/hibernate/model/Person.hbm.xml" />
问题解决.
分享到:
相关推荐
1. 下载:获取名为"hibernatesynchronizer_3.1.9"的压缩包文件。 2. 解压:将压缩包解压,获取到"com.hudson.hibernatesynchronizer_3.1.9"文件夹。 3. 安装:打开Eclipse,进入“Help” -> "Install New Software...
使用 HibernateSynchronizer 的步骤如下: 1. 生成 Hibernate 配置文件: 右击项目,选择“新建”-> “其他…”,在弹出的对话框中找到 Hibernate 文件夹,选择“Hibernate Configuration File”。填写相关信息,...
《Hibernate Synchronizer 2.3.1:Java ORM神器的深度解析》 Hibernate Synchronizer,这个名字在Java开发领域中或许并不陌生,它是一款针对Hibernate框架的强大工具,旨在简化对象关系映射(ORM)过程中的数据库...
在实际使用中,开发者可以通过以下步骤来利用HibernateSynchronizer: 1. **配置项目**:首先,需要在项目中引入HibernateSynchronizer的依赖,并配置好相关参数,如数据库连接信息、Hibernate配置文件路径等。 2....
使用HibernateSynchronizer3时,开发者需要配置好数据库连接信息,然后指定需要生成的`.hbm`文件。工具会根据这些文件自动生成对应的实体类,同时,如果选择启用SSH生成功能,还会生成Controller、Service、DAO以及...
在本例中,我们将使用Eclipse 3.2版本来安装Hibernate Synchronizer插件。Eclipse通过“帮助”菜单下的“软件更新站点”选项来管理外部插件的安装。 #### 安装过程详解 **步骤1:打开Eclipse** 首先启动Eclipse ...
《HibernateSynchronizer:版本详解与应用探索》 HibernateSynchronizer是一款强大的工具,它集成了Hibernate和Spring框架,主要用于数据库模型与Java实体类的同步,大大提升了开发效率。本篇将详细介绍Hibernate...
HibernateSynchronizer是一款基于Hibernate的数据库同步工具,它能够帮助开发者高效地管理数据库与Java实体类之间的同步问题,确保数据模型与数据库表结构的一致性。在版本3.2中,这款工具提供了更稳定和强大的功能...
在使用Eclipse Hibernate Synchronizer时,开发者可以快速地将数据库结构映射到Java持久化类(POJOs),同时也能将这些类反向同步到数据库中。这在进行敏捷开发和数据库频繁调整时非常有用,因为它允许你在设计阶段...
标题与描述均提到了“Hibernate Synchronizer 插件重大缺陷改正”,这表明文章或讨论主要聚焦于解决在使用Hibernate Synchronizer插件时遇到的关键问题。Hibernate Synchronizer插件通常用于同步数据库操作,例如在...
Hibernate Synchronizer是一款强大的开发工具,专为Java开发者设计,主要用于简化Hibernate对象关系映射(ORM)框架的使用。它作为一个Eclipse或IntelliJ IDEA的插件,帮助开发者实现数据库与Java类之间的自动映射,...
HibernateSynchronizer
综上所述,hibernateSynchronizer插件和Hibernate Validator是Hibernate框架中两个非常实用的工具,它们分别解决了ORM映射文件和Java类的自动生成以及数据验证的问题,为Java开发带来了极大的便利。通过熟练掌握并...
HibernateSynchronizer 是一款非常简单实用的eclipse插件,但是作者多年前就停止了维护,所以再eclipse 4.* 版本上无法再实用这款插件,这对很多使用这款插件的开发者来说非常不方便。尤其是eclipse高版本对高分屏的...
在整合Hibernate Synchronizer与Spring框架的过程中,我们主要关注的是如何让这两个强大的工具协同工作,以实现高效的数据持久化管理。Hibernate Synchronizer是一个用于自动更新Hibernate映射文件(.hbm.xml)的...