使用CXF / JAXB2生成和自定义equals / hashcode方法

时间:2012-06-03 11:07:57

标签: java jaxb cxf maven-jaxb2-plugin

我的WSDL中有A生成的两个类Bcxf-codegen-pluginA继承自B

我想添加常见的方法,例如hashCode()equals() ...所以,我的POM中有以下配置:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>2.6.0</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <wsdlOptions>
                    <wsdlOption>
                        <wsdl>${basedir}/wsdl/PeeringApi.wsdl</wsdl>
                        <extraargs>
                            <extraarg>-xjc-XhashCode</extraarg>
                            <extraarg>-xjc-Xequals</extraarg>
                            <extraarg>-xjc-Xsetters</extraarg>
                        </extraargs>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.jvnet.jaxb2_commons</groupId>
            <artifactId>jaxb2-basics</artifactId>
            <version>${jaxb2.version}</version>
        </dependency>
    </dependencies> </plugin>

我有两个问题:

  1. 有没有办法生成equals()方法,该方法不会比较B的属性(即不调用super.equals())?
  2. 如何指示插件生成equals()方法,该方法仅比较我指定的A的某些属性(默认情况下,似乎所有属性都被比较)?
  3. 由于

1 个答案:

答案 0 :(得分:2)

我找到了一个解决方案,如下所述:http://confluence.highsource.org/display/J2B/JAXB2+Basics+Plugins

您可以添加自定义绑定以指示JAXB2插件忽略某个属性。