问题标签 [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 投票
1 回答
185 浏览

java - Hyperjaxb:通过 XML 属性排除 XML 元素

我有一个预定义的 XSD,如下所示:

为了从 XSD 生成 Java 类并同时将 XMLGregorianCalendar 替换为java.util.Date,我使用了以下外部绑定:

我在这里找到了这个解决方案。

现在,我只需要为属性Date1而不是DateList1这样做。有没有办法通过使用它的属性来排除DateList1maxOccurs="5"

0 投票
1 回答
101 浏览

hibernate - 使用 hyperjaxb3 的休眠索引

我正在尝试使用 hyperjaxb 为简单属性添加索引,在我的 .xjb 文件中使用以下片段:

我收到“错误解析注释”。我在 .xjb 文件中有注释的行出错。如果我删除注释,那么它工作正常,但显然,我没有得到索引。我还尝试在 hj:basic 元素内移动注释。在在这种情况下,我没有收到错误,但再次没有生成索引。

0 投票
1 回答
220 浏览

hibernate - HyperJaxb3 - Java 1.8 上的 XSD 到 JPA:依赖项

我正在尝试使用 HyperJaxb3 从 XSD 生成 JPA 兼容类。这是我的问题:

  • 该框架与 java 1.8 兼容吗?
  • 我在哪里可以获取 maven 和 ant 的运行样本?似乎原始站点已被弃用,并且在 github 上没有关于如何使用该库的明确示例。

非常感谢您提前感谢您的所有可用性。最好的,米

0 投票
1 回答
182 浏览

java - 编译错误:包 org.jvnet.hyperjaxb3.item 不存在

我在我的项目中使用以下依赖项

我在项目的 maven 依赖项中的 jar hyperjaxb3-ejb-runtime-060.jar 下看到了包 org.jvnet.hyperjaxb3.item。我的问题是 Maven 在构建项目时抱怨包不存在。我已经移除了 jar 并尝试重建,但没有任何变化。任何帮助,我被卡住了!

0 投票
1 回答
403 浏览

java - 在 @column 中为某些单字符列生成 hyperjaxb 额外下划线(_)

我正在尝试使用 hyperjaxb 生成带 JPA 注释的 java 类,但遇到了一个问题。欢迎任何建议:-

部分..Pom.xml

这是 demo.xsd:-

这是生成的java类

额外的下划线 @Column(name = "G_", length = 255) 正在破坏我的代码,因为休眠抱怨无效的列映射。

到目前为止我尝试过的对问题没有影响:- 1)demo.xsd 中的内联自定义绑定

我在这里想念什么,请任何人!

更新: 下面的休眠查询:-休眠:

选择 demo0_.PLAYERID 作为 PLAYERID1_0_,demo0_.G_ 作为 G_2_0_ 从 DEMO demo0_ where demo0_.PLAYERID in (?)

痕迹:

正确的是,实际列是G而不是由 hyperjaxb 生成的G_ ,将其更改为 G(手动)解决了这个问题

0 投票
1 回答
334 浏览

java - 忽略 hjid 的 hyperjaxb 内联自定义问题

我需要在我的 JPA 注释的 java pojos 中忽略自动生成的 hjid。我可以使用外部绑定来完成这项工作,但是当我尝试使用 JAXB 内联自定义做同样的事情时,它仍然会创建 hjid。我在这里缺少什么。

大师.xsd

有效的外部绑定,但我需要避免使用外部绑定 bindings.xjb

0 投票
1 回答
120 浏览

sql-server - 使用 hyperjaxb3 和 springboot 将 SqlServer 表/列名截断为 30 个字符

我正在使用带有 Springboot 应用程序的 SqlServer42 驱动程序,该应用程序使用 jparepositories 保存 hyperjaxb3 生成的实体。

我已经PhysicalNamingStrategyStandardImpl.toPhysicalTableName()用一些字符串覆盖了表名的前缀。

问题是表名和列名被截断为 30 个字符限制。最终生成的名称长度为30 个字符(前缀 + 表名)。

即使我不使用前缀并且表名恰好超过 30 个字符,也会被截断。

我还检查了 sqlserver 允许名称长度为128个字符。

有没有办法增加这个限制,因为 SqlServer 确实允许超过 30 个字符名称。

编辑:生成的类用注释@Table(name = <Truncated_Value>)

0 投票
1 回答
222 浏览

java - 解组后是否可以使用 jaxb 注释来导航对象?

我有一个相当复杂的 XML 模式,我使用 hyperjaxb3 生成带有注释的 pojo。有时我有父对象并想检查可能是 8 或 9 个子对象深的子对象的值。无论如何使用 jaxb 或其他工具来获取基于 jaxb 注释的特定类的子对象列表?

我可以编写一个递归函数来搜索所有子类的实例,但这并不理想。任何建议将不胜感激,谢谢。

0 投票
1 回答
98 浏览

hibernate - 为什么 Hyperjaxb3 会生成 RestItem 类?

我正在使用 maven-hyperjaxb3-plugin (0.6.1) 从我的 xsd 文件生成域类。除了一个类之外,一切都运行良好,甚至在我添加超过 23 个字段之前都运行良好。

一旦超过该字段数,它就会为我的名为 ILT 的表生成两个类:一个称为 ILT.java,一个称为 ILTRESTItem.java,我认为这与将这些类与 REST API 一起使用有关(我不这样做)不打算这样做)。

ILTResItem 类有编译错误。它对 XmlAdapterUtils.unmarshallJAXBElement 做了很多调用,错误消息是:

XmlAdapterUtils 类型中的方法 marshallJAXBElement(Class, QName, Class, BoundType) 不适用于参数(Class, QName, Class, String)

我实际上并不太担心这个错误,因为我宁愿它根本没有创建 ILTResItem 类。其他(较小的)类工作正常,我的目标是让 ILT 做同样的事情。

如果我运行 jaxb2 插件 (maven-jaxb2-plugin) 并使用它来生成类,则不会生成 ILTRESTItem 并且这些类是正确的,但是它们当然缺少 JPA 注释。这让我怀疑 Hyperjaxb3 负责生成 ILTRESTItem 类,但我查看了源代码,希望看到其中包含类似“RestItem”的类,但没有。

一个相关点是我在这里使用单表继承。ILT 类和另一个类 (IFT) 使用相同的基础表 (Transaction),它们都扩展了 Transaction 类。如果我从 Transaction 中分离 ILT 并使其成为非继承类,则 ILTResItem 不再生成。

对 JAXB2 和 HyperJaxb3 进行了大量搜索,但我没有找到对 RestItem 的任何引用,也没有找到生成它的原因(或者它们中的哪一个)。我希望有一些配置开关可以关闭 RestItem 生成,但到目前为止我看不到它。

为了完整起见,我应该补充一点,我尝试切换不同的字段以查看其中一个字段是否是此行为的触发器,而事实并非如此。它实际上似乎是字段的数量,或者可能是记录的总长度。

另外:JPA 2.1 和相关的 Maven 片段是:

依赖项是使用 annox 在该附件中获取几个自定义注释。

最后是我的 xsd 文件中的相关片段:

只要我的字段列表足够短,这一切都会奏效。

0 投票
0 回答
50 浏览

java - 无法为 complexType 设置列长度

我有一个问题,我无法弄清楚如何使用 bindings.xjc 文件中的条目来自定义 ComplexType 内容的列长度。

复杂类型定义为:

bindings.xjc 文件条目是:

生成的 Java 代码是:

问题是,当我运行 Maven 构建时,此自定义被忽略,但其他自定义已成功应用。

以下警告出现在构建输出中,我相信第一个是相关的:

[警告] 类 [...评论] 中未确认的自定义 [{ http://hyperjaxb3.jvnet.org/ejb/schemas/customizations }basic]。

[警告] 剧集文件 [.../target/generated-sources/xjc/META-INF/sun-jaxb.episode] 不可写,无法添加 if-exists 属性。

我花了很多时间寻找答案并阅读可用的文档,但到目前为止还一片空白,因此非常感谢任何帮助。