防止Netbeans JAXB生成破坏类

防止Netbeans JAXB生成破坏类,netbeans,xsd,jaxb,Netbeans,Xsd,Jaxb,我正在Netbeans 6.8下使用JAX-WS和JAXB开发一个SOAP服务,每次XSD模式和JAXB绑定基于更改时,Netbeans都会破坏我的工作,这让我有点沮丧 更详细地说,IDE会自动生成绑定到模式的类,然后可以使用JAXB将这些类从XML编组到XML。对于这些类,我添加了额外的方法,用于(例如)转换为单独的类,并从这些单独的类转换为使用JPA持久化到数据库的类。问题是,每当模式发生更改并重新生成时,这些类都会重新生成,所有自定义方法都会被删除。我可以通过从备份文件中复制粘贴来手动替换

我正在Netbeans 6.8下使用JAX-WS和JAXB开发一个SOAP服务,每次XSD模式和JAXB绑定基于更改时,Netbeans都会破坏我的工作,这让我有点沮丧

更详细地说,IDE会自动生成绑定到模式的类,然后可以使用JAXB将这些类从XML编组到XML。对于这些类,我添加了额外的方法,用于(例如)转换为单独的类,并从这些单独的类转换为使用JPA持久化到数据库的类。问题是,每当模式发生更改并重新生成时,这些类都会重新生成,所有自定义方法都会被删除。我可以通过从备份文件中复制粘贴来手动替换它们,但这相当耗时且繁琐。由于我使用的是迭代设计方法,所以模式的更改相当频繁,而且每次更改都会浪费大量时间,只是为了恢复我以前的代码


虽然IDE自动重新生成JAXB绑定的类是完全合理的,我并不想暗示其他情况,我想知道是否有人对如何防止每次模式更改时必须手动恢复我的额外工作有什么好主意?

修改XJC generate源代码并不是一个好主意,原因您已经发现。您应该使用绑定定制或XJC to插件来生成所需的附加代码,或者将附加代码从XJC生成代码中移出并放入单独的源文件中

如果有额外的代码在JAXB和JPA类模型之间进行转换,那么它可能会作为一个独立的转换层。那样做不太糟糕,但可以解决你的问题


或者,有一个可以让您保留手动添加到生成的源代码中的代码,但是它的文档记录很差(我自己也没有使用过)。您可能需要反复研究如何使用它。

与其修改生成的类以添加方法,不如扩展生成的类,并将其他方法放在从生成的类派生的类中。

我希望避免滚动转换层,因为它不是最优雅的解决方案,但看起来这可能就是我要走的路。谢谢