问题标签 [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 回答
99 浏览

java - Hyperjaxb:覆盖复杂类型中元素的级联

我正在使用 Hyperjaxb 分配的默认级联选项。但是,有一个例外情况我需要覆盖。假设我有一个定义如下的类型:

现在,很明显,当我删除 Dog 时,它的所有者不应该被删除。但是,DogOwner 的默认级联选项是ALL. 如何覆盖 DogOwner 的 CascadeType 以便它在所有情况下都级联,除了REMOVE

谢谢你。

0 投票
0 回答
99 浏览

java - 在 Hyperjaxb 中自定义 @Embedded 属性的列名

当使用带有@Embedded 的属性时,列以不符合我的特定目标数据库的特定模式命名,因此我想自定义表的生成名称。

在我的特定用例中,我无法更改架构,并且当前在我的 bindings.xjb 中自定义为我的目标数据库。

我有一个“项目”,我只想保留它的值:

该项目在“MyGroup”(和其他)中用作元素类型。

我想要以下结果表:

在我的 bindings.xjb 中,我将要嵌入的项目和我不需要的属性设置为 @Transient:

我可以更改列名

但这只能让我到目前为止:

我怎样才能实现这样的定制?

我尝试查看自定义指南并获得带有测试的源代码,但找不到任何相关内容。

0 投票
1 回答
252 浏览

hyperjaxb - Hyperjaxb3 命名策略在 0.5.6 和 0.6.2 之间变化

我们有一个重要的代码库,它利用 Hyperjaxb3 来注释使用 xjc 生成的 Java 类(以及其他 xjc 插件,包括一个自制的插件)。

我们正在尝试从 Hyperjaxb3 0.5.6 升级到 0.6.2,但遇到了一个重大问题,即这些版本之间明显的命名策略更改。

具体来说,在 0.5.6 中,像“OneTwo”这样的 complexType 名称会导致表名“ONETWO”,而在 0.6.2 中,表名是“ONE_TWO”。列名相同。

我们非常倾向于不重构数百个查询来适应这样的命名变化(尽管更新、更传统的 SQL 命名当然是有意义的——我们希望它是六年前这个项目开始时的默认行为)。

有没有一种简单的方法可以切换到旧的命名策略?如果做不到这一点,您能否提供有关如何使用自定义命名策略扩展 Hyperjaxb3 的详细信息?

看过这个 testthis one后,我们并不清楚我们需要对我们的 pom 做什么来指定不同的命名策略类,并且扩展指南目前是空的。

0 投票
1 回答
112 浏览

hyperjaxb - 如何指定要在生成的 persistence.xml 中使用的持久性单元名称?

我们广泛使用 Hyperjaxb3(版本 0.6.2)来创建和定制我们的 JPA 实体类。

一个小烦恼是,当我们添加到我们的模式时,生成的持久性单元名称有时会发生变化。特别是,当我们 1) 更改包含的 XSD 文件中的 XML 命名空间,2) 从编译中删除命名空间,或 3) 将命名空间添加到编译时,就会发生这种情况。

看起来生成命名空间是编译中包含的(按摩的)命名空间的串联,所以如果我们调整命名空间,生成的单元名称会改变是有道理的。

问题是我们需要在几个模块的其他一些配置文件中包含持久性单元名称。每次持久性单元名称更改时,我们都有更多的文件要更新。

我们希望能够在调用 xjc 时(在我们的 maven 构建中)或可能在全局绑定中指定持久性单元名称。

如何指定要在生成的 persistence.xml 中使用的持久性单元名称?

0 投票
1 回答
300 浏览

java - 如何在 HyperJaxb3 中将生成的属性注释为瞬态

我只想拥有一个实体的属性作为瞬态。HyperJaxb的旧文档[ 1 ] 似乎不可用,Github[ 2 ] 上的文档对我没有帮助。

我尝试使用可嵌入/可嵌入属性和生成的 id 构造,但没有成功。

我有一个模型如下,我想在生成的类中将 lastActivityTime 作为 Transient 。该字段的当前注释是我不成功的尝试之一。

[1] confluence.highsource.org/display/HJ3/Customization+Guide

[2] https://github.com/highsource/hyperjaxb3/wiki/Customization_Guide

0 投票
0 回答
292 浏览

xml - HyperJAXB3 - 解析 XSD,包括 xs:any 通配符

我有一个巨大的 xsd 模式(开源 railML 2.2 格式),我正在尝试为其创建一个 JPA 注释对象模型。我想为此使用 HyperJAXB3。

XSD 架构包括一些<xs:any namespace="##other" />元素。我没有机会更改 xsd 文件。hyperjaxb 编译器给出错误:

所以 Hyperjaxb 似乎对这些通配符结构有问题。我尝试添加hj:ignored绑定

但随后编译器给出:

引用的 XSD 部分:

有没有办法用 HyperJAXB 解析 XSD 文档,或者有没有办法绕过这些xs:any元素?

0 投票
1 回答
109 浏览

java - Hyperjaxb 3 导入 XSD 和 persistence.xml

这是我第一次尝试使用 Hyperjaxb3。我有一个我的 2 XSD 的片段,如下所示

ContractFullInfo.xsd

通用.xsd

与此相关的问题会生成两个 ContractPerson 类,如下所示:

它在部署过程中给了我错误

我的 Java 配置的一部分(我目前评论过)

我的问题:

  1. 两个类完全相同。我该如何选择?
  2. 我正在使用 Spring Boot,有没有办法使用 Spring Boot java 配置覆盖 persistence.xml ?
0 投票
1 回答
91 浏览

java - 使用 HyperJaxb3 自定义抽象 complexType 的元素

我正在将 XSD 模式转换为带有 HyperJaxb3 的 Hibernate 的 Java 注释 bean。

到目前为止,我设法生成了 Java 对象,但是我需要自定义 OperableType 的备注字段,因为默认生成的长度是 255,我需要将其扩展到 4000。

这是相关 xsd 模式的片段:

我无法修改 XSD 架构或收到的 XML 文件,因此我需要自定义绑定以使其正常工作。

我尝试使用此绑定

但它不会修改生成代码中的长度。

我还尝试使用 'hj:default-single-property' 来自定义 UnlimitedTextType,但我也没有设法使其工作。

0 投票
2 回答
111 浏览

java - 自定义 hyperjaxb3 生成实体的表名?

我有一个 xml 模式,其中有 simpleType( diagnosticCode ),如下所示:

这已经生成了一个与子类具有一对多关系的顶级类,如下所示:

具有原始属性的父类和 hyperjaxb 生成类的瞬态属性:

子类为:

现在的问题:有没有办法自定义自动生成实体的表名:MedicalClaimDetailDiagnosisCodeItem,它是 hyperjaxb 生成的表名作为 MEDICALCLAIMDETAILDIAGNOSISC_0

我们怎样才能做到这一点?

0 投票
0 回答
22 浏览

binding - hyperjaxb 绑定自定义排除包

我有一个导入 Common.xsd 的 A.xsd(名称空间,例如“ http://common.pack ”),然后我会排除 Common.xsd 对 pack.common 包的贡献(jsut jpa 注释)但是我需要其他具有相同命名空间的 xsd 仍然可以为 pack.common package 提供帮助。

我正在使用我的 bindinds.xml 的这段摘录:

但是当运行 maven 时,似乎 xjc 完全删除了 pack.common,而不是我只想阻止来自 common.xsd 的实体

当我错了?