如何在 Hibernate Java obj 中添加 @XmlTransient

How to add @XmlTransient in Hibernate Java obj

我有一个由 Hibernate 生成的 Java bean:

我想在 XML SOAP 请求中创建某些字段 @XmlTransient 这样用户就不必像这样填写它们:

// Generated Feb 25, 2020 9:19:29 AM by Hibernate Tools 3.1    

String WarriorID = "";
@XmlTransient   
Name name = null;
@XmlTransient
int HPStat = -1;
@XmlTransient
int MPStat = -1;

所以在我的 SOAPUI 中我希望它看起来像

<warriorID> </warriorID>

其他字段不会included/seen。

所以我从 mvnrespository 下载了 xml-apis.jar 这样我就可以调用这个注释了。

问题是在我的 BuildPath 中包含 xml-apis.jar 之后,Eclipse 仍然用红色下划线表示命令,暗示它不知道注释:

我做错了什么? 这是稍后将由 SOAP 客户端使用的 Web 服务。

我也不会用@Transient

感谢您的帮助。

What am I doing wrong?

正如我在评论中所述,您导入了错误的 jar。有一些在线服务可以帮助查找包含特定 class 的所有 jar,例如http://findjar.com(最好先参考与 class 相关的文档)。

使用该服务,您会看到包含 javax.xml.bind.annotation.XmlTransient 的罐子大多被命名为 jaxb-api.jar 或在其名称中包含关键字 bindhttps://www.findjar.com/class/javax/xml/bind/annotation/XmlTransient.html

此外,如果您在导入您认为需要的 jar 后仍遇到问题,您可以使用一些 zip 查看器(例如 7zip)查看该 jar 的内部。这样你应该能够看到 xml-apis.jar 包含文件夹 javax/xml/parsersjavax/xml/transform 但没有 javax/xml/bind - 所以它一定是错误的文件。

顺便说一句,"I downloaded xml-apis.jar from mvnrespository" 听起来您是在手动处理依赖项。如果是这种情况,我建议查看构建工具,例如 Maven 或 Gradle.