我正在迈出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时禁用文档验证?
答案 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