问题标签 [hyperjaxb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1785 浏览

exception - 我在哪里可以为 hyperjaxb 设置 auto-import="false"?

你知道在使用 hyperjaxb 时我可以在哪里设置 auto-import="false" 吗?调用 Persistence.createEntityManagerFactory() 时出现此异常。

假设这种自动导入解决了我的问题,我会假设我必须改为手动导入。我会去哪里寻找这样的信息?

谢谢你。

线程“主”javax.persistence.PersistenceException 中的异常:[PersistenceUnit: com.sun.java.xml.ns.persistence:org.jvnet.hyperjaxb3.ejb.schemas.customizations:com.sun.java.xml.ns.persistence .orm:generated] 无法在 javax.persistence.Persistence 的 org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125) 的 org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:265) 配置 EntityManagerFactory。 createEntityManagerFactory(Persistence.java:52) at PropertiesTest.Test1(PropertiesTest.java:68) at PropertiesTest.main(PropertiesTest.java:121) 原因:org.hibernate.AnnotationException:使用相同的实体名称两次:基本在 org .hibernate.cfg.annotations.EntityBinder.bindEntity(EntityBinder.java:304) 在 org.hibernate.cfg.AnnotationBinder。bindClass(AnnotationBinder.java:567) 在 org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546) 在 org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291) 在 org.hibernate.cfg.Configuration .buildMappings(Configuration.java:1148) 在 org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1226) 在 org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:173) 在 org.hibernate.ejb。 Ejb3Configuration.configure(Ejb3Configuration.java:854) at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:191) at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:253) ... 4 更多by: org.hibernate.DuplicateMappingException: 重复导入:Basic 既指 org.hibernate.DuplicateMappingException。jvnet.hyperjaxb3.ejb.schemas.customizations.Basic 和 com.sun.java.xml.ns.persistence.orm.Basic(尝试使用 auto-import="false")在 org.hibernate.cfg.Mappings.addImport(Mappings .java:164) 在 org.hibernate.cfg.annotations.EntityBinder.bindEntity(EntityBinder.java:297) ... 还有 13 个

0 投票
1 回答
181 浏览

maven - 为 hyperjaxb3 设置字符编码

有没有办法设置 maven hyperjaxb3-plugin 生成的文件的字符编码?开箱即用,生成的 Java 文件使用 ISO-8859-1 字符集编码(至少在我的 Windows 机器上)。

0 投票
1 回答
1206 浏览

hibernate - 当 hyperjaxb 将 JTS Point getter 标记为 @Transient 时,使用 jaxb、hyperjaxb3、jpa2、jts、hibernate-spatial、postgis 失败

我的同事对我坚持代码生成感到遗憾,但我决心证明这个特定的链是可以完成的。下面的示例是从我的项目中简化的(因此未经测试作为输入);我将很快创建一个测试工具。目前使用休眠 4.1.4、休眠空间 1.1.1、hyperjaxb3-ejb-plugin 0.5.6。

我从一个使用 Position 元素的模式开始,该元素的类型是一个简单的字符串扩展:

我使用 bindings.xjb 自定义将我的 xmlType wktPoint 映射到使用 jaxb:javaType 的 JTS Point javaType,因为我希望将 JTS Point 字段映射到 postgis 几何列:

稍后在 bindings.xjb 中,我开始使用 annox:annotation 自定义 Position 元素:

但是,这会在 MyType.java 中生成以下 getPosition 方法:

因此,当我启动我的应用程序并且 jpa/hibernate 开始初始化表时,它会完全跳过 POSITION 列(因为它被标记为@Transient)。

如何防止 @Transient 出现?看来我需要说服 Hyperjaxb 我们将能够将 JTS Point 类型直接写入数据库(这就是所有 @Type 的内容,表明我们希望 hibernatespatial 在读取和写入位置时使用 postgis 方言)。关于如何做到这一点的任何想法?

0 投票
2 回答
286 浏览

java - 如何从 xsd 生成具有持久性映射的 bean?

我想问这样的问题,我有 XML xsd`s,它使用 org.jvnet.jaxb2.maven2 生成 bean,但现在我需要将 java.persistence 映射添加到这些 bean 中。

哪个是最好的方法?

这是 xsd 的示例:

以及它生成的内容:

我需要它会产生这样的东西:

扩展我的问题:正如我们所知道的,我们可以使用 HyperJaxb,但是有人可以告诉如何配置 pom 文件,所以它会生成这些注释吗?

0 投票
1 回答
258 浏览

hibernate - 在使用 hyperjaxb 进行往返测试期间忽略数据源

我正在使用带有 maven 的 Hyperjaxb 3 从 xsd 生成 java 类。为了指定在 AS 中使用的数据源,我使用 plugin-configuration (pom.xml) 中的 persistenceXml 设置配置了一个自定义的 persistence.xml 模板

这是模板:

由于使用 maven 运行测试时没有数据源,因此往返测试失败。有没有办法忽略该jta-data-source选项并回退到persistence.properties,或者在其中生成一个替代persistence.xml src/test/resources

0 投票
0 回答
520 浏览

jpa - Hyperjaxb/JPA:通过 id 而不是值引用实体

免责声明 #1:我对 XSD、数据库和 JPA 还很陌生——所以我的问题可能是荒谬的。

我有一个通过 XSD 指定的接口——我将接收 XML 文档并且需要将它们的内容保存到关系数据库中。我修改 XSD 的能力有限。接口本身由大量关系复杂的实体组成;有许多地方不希望在 XML 文档中要求完整的对象图。

本质上,我的 XSD 目前看起来像这样:

我通过 hyperjaxb3 (0.5.6) 运行该 XSD 并获得一组用于 Foo、Bar 和 Baz 的 Java 类。我想要的是生成的数据库模式要求 Bar.associatedFoo 和 Baz.associatedFoos 都是实际的 fooId。但是,我不能只更新架构,以便例如 bar.associatedFoo 是 ns1:Foo 类型。所以,问题是:我该怎么做?

这里的推理是,XSD 中的每一种类型实际上都是大的、复杂的、相互关联的对象图。我不希望 Baz 的 XML 文档必须包含其每个 Foo 的完整 XML 表示。

(显然,一种选择是在创建 JPA 模式之后手动添加 DB 约束——但如果可能的话,我宁愿将此信息嵌入到 XSD 中。)

在更简单的情况下(Bar.associatedFoo),我可以使用 orm:column 注释直接修改列定义:

但是(a)我不确定如何将此尝试扩展到 Baz.associatedFoos 案例,并且(b)如果可能的话,我更喜欢不那么脆弱的东西(列定义字符串需要在 foo id 长度更改时进行调整,架构名称更改,或 Foo 的表名称更改;这取决于 JPA 决定在 CREATE TABLE foo 之前创建 TABLE Bar;并且直到运行时才产生错误)。

如果重要的话——我使用 openJPA 2.1.1 作为我的 JPA 实现,使用 Postgres 9.1 作为我的数据库。在 XSD 中,如果需要,我可以更改 ID 定义(使其成为 complexType、xsd:string 的命名别名或可能的其他一些更改),并添加我喜欢的任何 xsd:annotations,但我不能做很多我的类型的其他结构变化。

提前致谢!

0 投票
0 回答
231 浏览

jpa - HyperJAXB 和 ID/IDREF

在 HyperJAXB3 中为 JAXB 2.x 使用 ID 和 IDREF 是否有任何更新? HyperJAXB 和 IDREF

我已向我的 IDREF 元素添加了一个 baseType 绑定,并且在所有者对象上生成了正确的类型,但生成的类无法编译,因为解组操作返回一个对象。

我想使用 IDREFs 的原因是避免在我的 WSDL 中循环引用,所以如果有其他解决方案或较少手动的解决方案,请告诉我。

0 投票
3 回答
10967 浏览

jpa - 获取错误原因:org.hibernate.AnnotationException:使用@OneToMany 或@ManyToMany 针对未映射的类

我是 JPA/Hyperjaxb 领域的新手。我的目标是在 Author 和 Book 表(postgres 数据库)之间生成多对多映射。

在数据库中 - Author 表有列 - id、name 和 Book 表有列 - id、title。我有一个联结(链接)表 AUTHORS_BOOKS ,它具有栏aid、bid(其中aid 映射到 Author 表中的 id 字段和bid 映射到 Book 表中的 id 字段)。

我们正在公开一个 web 服务(让我们不要关注为什么要使用 web 服务),以允许客户查询/浏览作者和书籍。对于 web 服务,我正在使用 hyperjaxb 表示法创建 pojos(这就是它的本来面目)。

这是我的 types.xsd 文件:

这是 bindings.xjb 文件:

这是生成的 Author.java (部分):

这是生成 Book.java 的(部分):

我不确定我做错了什么,但是当我将war文件部署到tomcat时出现以下错误(7.0.34,还尝试了其他几个7.0.x版本)

我一直在网上搜索答案,要么没有解决方案,要么大多数错误是由于 @ManyToMany 标记中缺少 @Entity 或 @Id 或 targetEntity 字段。我真的可以在这方面使用一些指针!非常感谢您的时间和帮助!谢谢。

0 投票
1 回答
205 浏览

attributes - Hyperjaxb/lombok:如何强制 Hyperjaxb 在属性而不是方法上生成注释映射?

我想在我的属性上添加 jpa 注释,而不是在 getter 和 setter 上。可以为此配置 hyperjaxb 吗?

我想要这个,因为我使用 lombok 是为了避免 getter 和 setter 代码,并且在属性上方有“@getter”“@setter”。

谢谢你

0 投票
1 回答
1111 浏览

java - hyperjaxb3 0.5.6 定制不使用 @GeneratedValue 注释 id

我想通过使用 hj:generated-value tag 将现有属性标记为生成的标识符来自定义我的 hyperjaxb3 生成的类。在我的 bindings.jxb 文件中,我将 Status 的 id 标记为标识符,但生成的实体未使用 @GeneratedValue 进行注释。因此,Status 表的 id 字段在数据库中被标记为 pkey 但不是自动递增的。

XML 模式定义:

bindings.xjb 中的 Hyperjaxb3 自定义:

结果类:

在 Postgres 9.2 中使用 hibernate 作为 jpa 提供程序。pom.xml:

任何帮助,将不胜感激。