JPA - 禁用persistence.xml的验证

时间:2010-09-22 11:26:17

标签: java hibernate jpa

我正在迈出JPA(Hibernate)的第一步。总体思路是连接到遗留数据库以执行复杂查询。我认为,hibernate是这项任务的绝佳伴侣,但是......

...首先,我创建了一个bean,persistence.xml和hibernate.cfg.xml配置文件以及main方法中的一些代码行,从:

开始
EntityManagerFactory emf = Persistence.createEntityManagerFactory("foo");

它读取persistence.xml文件但是,因为我已断开与互联网的连接,它无法读取模式文件(xsd)来验证persistence.xml并抱怨异常。 (我在该环境中没有persistence.xsd的本地副本)。我尝试删除schemalocation属性,但这没有帮助。没有语法,没有JPA!?

是否有方法/技巧/解决方法至少在解析persistence.xml时禁用文档验证?

1 个答案:

答案 0 :(得分:4)

摘自JPA规范

  

容器/存储提供程序(Hibernate)必须针对persistence_1_0.xsd架构验证persistence.xml文件并报告任何验证错误

...

  

持久性配置文件必须使用持久性命名空间指示持久性架构

 http://java.sun.com/xml/ns/persistence
  

并使用版本元素指示架构的版本,如下所示

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
             http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
             version="1.0">

上面显示的元素对JPA 1.0有效如果您使用JPA 2.0则更新到2.0