我正在使用Netbeans 6.8下的JAX-WS和JAXB开发一个SOAP服务,并且每次XSD模式我的JAXB绑定基于更改时,Netbeans都会对我的工作感到沮丧。
详细说明,IDE会自动生成绑定到模式的类,然后可以使用JAXB(un)编组/解析XML。对于这些类,我添加了额外的方法(例如)转换为单独的类,并设计为使用JPA持久保存到数据库。问题是每当架构更改并重建时,都会重新生成这些类,并删除所有自定义方法。我可以通过从备份文件中复制粘贴来手动替换它们,但这非常耗时且乏味。由于我正在使用迭代设计方法,因此架构正在经常变化,而且每次浪费时间都会浪费很多时间,只是为了恢复以前的代码。
虽然IDE自动重新生成JAXB绑定类是完全合理的,我不是故意暗示其他方面,我想知道是否有人有任何明智的想法,如何防止我的额外工作必须每次手动恢复我的架构发生了变化?
答案 0 :(得分:1)
由于您发现的原因,对XJC生成源进行修改并不是一个好主意。您应该使用绑定自定义或XJC插件来生成所需的其他代码,或者将其他代码移出XJC生成代码并转移到单独的源文件中。
如果你的附加代码可以在JAXB和JPA类模型之间进行转换,那么它可以作为一个独特的转换层独立存在。这不是那么好,但它会解决你的问题。
或者,有一个XJC plugin可以让你保存已经手动添加到生成的源代码,但是文档记录很差(我自己没有使用它)。你可能不得不在http://jaxb.dev.java.net/找到如何使用它。
答案 1 :(得分:0)
不是修改生成的类来添加方法 - 而是扩展生成的类,并将其他方法放在从生成的类派生的类中。