Search code examples
annotationshibernate-searchannotatehyperjaxb

Generate @Indexed annotation using Jaxb or HyperJaxb


I want to implement lucene based hibernate search in my assignment. For generating domain objects I am using HyperJaxb3.

I want @Indexed annotation to be added during domain object creation using HyperJaxb.

I tried googling for this, but unable to find solutions.

Any pointer in this regard will be of great help.


Solution

  • [Annotate plugin][1] is the right answer. See [this example][2].

    This is how it looks in schema:

      ....
      xmlns:hs="http://annox.dev.java.net/org.hibernate.search.annotations"
      ...
    
      <xsd:complexType name="USAddress">
        <xsd:sequence>
          <xsd:element name="name" type="xsd:string">
            <xsd:annotation>
              <xsd:appinfo>
                <annox:annotate>
                  <hs:FieldBridge impl="org.jvnet.hyperjaxb3.ejb.tests.annox.Items">
                    <params>
                      <hs:Parameter name="foo" value="bar"/>
                    </params>
                  </hs:FieldBridge>
                </annox:annotate>
              </xsd:appinfo>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="street" type="xsd:string"/>
          <xsd:element name="city" type="xsd:string"/>
          <xsd:element name="state" type="xsd:string"/>
          <xsd:element name="zip" type="xsd:decimal"/>
        </xsd:sequence>
        <xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/>
      </xsd:complexType>
    

    You can also use extra binding files (see the [example][2]).

    [1]: BAD LINK [2]: https://svn.java.net/svn/hj3~svn/trunk/ejb/tests/annox/