-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 8 posts ] 
Author Message
 Post subject: XDoclet2 composite-id problems
PostPosted: Tue Apr 01, 2008 12:43 pm 
Newbie

Joined: Tue Apr 01, 2008 12:30 pm
Posts: 12
I'm running XDoclet2 1.0.3 (1.0.4 seems broken), and I'm having some problems using the composite id syntax.

When I try to build the PKeyBean.java, I get a complaint from XDoclet2 that 'The content of element type "class" is incomplete' using the example syntax posted on other threads here. The source for my primary key is below.

Code:
package com.msobkow.admobile.advdb.rec;

import java.io.Serializable;

/**
*   AdvDbActionCodePKeyBean implements primary key mapping over the
*   table advdb.action_code
*   using XDoclet2 and Hibernate 3.
*
*   @hibernate.class
*      schema="advdb"
*      table="action_code"
*      dynamic-insert="true"
*      dynamic-update="true"
*      lazy="true"
*   @hibernate.cache
*      usage="nonstrict-read-write"
*   @hibernate.mapping
*      auto-import="true"
*/
public class AdvDbActionCodePKeyBean
   implements Serializable,
      AdvDbActionCodePKeyXfc
{

   /**
    *   The Unique class Id for this object.
    */
   public long         serialVersionUID = 20080331175900001L;


   /**
    *   Id maps the database column action_code.Id.
    *
    *   @hibernate.key-column
    *      name="Id"
    *      not-null="true"
    */
   short   id;

   public AdvDbActionCodePKeyBean() {
      super();
      id = (short)-1;
   }

   public void resetAttributes() {
      id = (short)-1;
   }

   public short getId() {
      return( id );
   }

   public void setId( short value ) {
      id = value;
   }

   public boolean equals( Object o ) {
      if( o instanceof AdvDbActionCodePKeyBean ) {
         AdvDbActionCodePKeyBean obj = (AdvDbActionCodePKeyBean)o;
         if( id != obj.id ) {
            return( false );
         }
         return( true );
      }
      else {
         return( false );
      }
   }

   public int hashCode() {
      int retval = 0;
      retval += id;
      return( retval );
   }

}


Any idea how to resolve the problem?

(Yeah, I know, composite-id is "bad".)


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 01, 2008 12:57 pm 
Newbie

Joined: Tue Apr 01, 2008 12:30 pm
Posts: 12
I've tried forcing XDoclet2 to bypass the PKeyBean issue by splitting up the Ant build into two parts, but I get errors from the Bean object as well. Specifically "The content of element type "composite-id" is incomplete".
Code:
package com.msobkow.admobile.advdb.rec;

import java.io.Serializable;
import java.util.List;
import java.util.Calendar;

import com.msobkow.admobile.advdb.info.AdvDbInfoCheck;

/**
*   AdvDbActionCodeBean implements data attribute mapping for the
*   table advdb.action_code
*   using XDoclet2 and Hibernate 3.
*   <p>
*   Note that if you are setting a required attribute that is implemented
*   by an object (e.g. String, Timestamp), the setter will throw an exception
*   when you try to set it to a <tt>null</tt> value because the copy
*   constructors expect a value to copy.
*   <p>
*   Range checking will similarly fail if you don't pass an appropriate object
*   to the setter.
*   <p>
*   If it's the <i>database</i> that has bad data, the information is still set
*   into the I/O buffer because the EJB2 I/Os directly access the attributes
*   rather than going through the getters and setters.  Not only is this more
*   efficient, it allows the code to bring bad data forward from the database
*   to the application so that it can be corrected and updated.
*
*   @hibernate.mapping
*      auto-import="true"
*      default-access="field"
*      package="com.msobkow.admobile.advdb.rec"
*   @hibernate.class
*      mutable="true"
*      optimistic-lock="all"
*      catalog="advdb"
*      schema="advdb"
*      table="action_code"
*      dynamic-insert="true"
*      dynamic-update="true"
*      lazy="true"
*   @hibernate.cache
*      usage="nonstrict-read-write"
*/
public class AdvDbActionCodeBean
   implements Serializable,
      AdvDbActionCodeXfc
{

   /**
    *   The Unique class Id for this object.
    */
   public long         serialVersionUID = 20080401164800002L;


   /**
    *   The primary key for ActionCode implements AdvDbActionCodePKeyXfc.
    */
   AdvDbActionCodePKeyBean   pKey;

   /**
    *   Value maps the database column action_code.Value.
    *
    *   @hibernate.property
    *      optimistic-lock="true"
    *      type="long"
    *      name="Value"
    *      lazy="false"
    *      not-null="false"
    *      access="field"
    */
   Long   value;

   /**
    *   ItemDescrId maps the database column action_code.item_descr_id.
    *
    *   @hibernate.property
    *      optimistic-lock="true"
    *      type="long"
    *      name="item_descr_id"
    *      lazy="false"
    *      not-null="true"
    *      access="field"
    */
   long   itemDescrId;

   /**
    *   Details list ItemDescr of AdvDbItemDescrBean
    *
    *   @hibernate.one-to-many
    *      class="com.msobkow.admobile.advdb.rec.AdvDbItemDescrBean"
    *      embed-xml="true"
    *      not-found="exception"
    */
   List   listItemDescr;

   public AdvDbActionCodeBean() {
      super();
      value = null;
      itemDescrId = -1L;
      listItemDescr = null;
   }

   public void resetAttributes() {
      if( pKey != null ) {
         pKey.resetAttributes();
      }
      value = null;
      itemDescrId = -1L;
      listItemDescr = null;
   }

   public short getId() {
      return( pKey.getId() );
   }

   public void setId( short value ) {
      pKey.setId( value );
   }

   /**
    *   Get the primary key.
    *
    *   @return   The primary key of the instance.
    *
    *   @hibernate.composite-id
    */
   public AdvDbActionCodePKeyBean getPKey() {
      return( pKey );
   }

   /**
    *   Set the primary key.
    *
    *   @param   key   The new primary key.
    */
   public void setPKey( AdvDbActionCodePKeyBean key ) {
      pKey = key;
   }

   public Long getValue() {
      return( value );
   }

   public void setValue( Long value ) {
      value = value;
   }

   public long getItemDescrId() {
      return( itemDescrId );
   }

   public void setItemDescrId( long value ) {
      itemDescrId = value;
   }

   /**
    *   Get the ItemDescr list.
    *
    *   @return   The ItemDescr list.
    */
   public List getItemDescr() {
      return( listItemDescr );
   }

   /**
    *   Set the ItemDescr reference.
    *
    *   @param   list   The list of AdvDbItemDescrBean instances.
    */
   public void setItemDescr( List list ) {
      listItemDescr = list;
   }

}


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 02, 2008 2:38 pm 
Newbie

Joined: Tue Apr 01, 2008 12:30 pm
Posts: 12
I tried stripping out the composite-id syntax as below, but now I get a "GeneramaException: Metadata was empty. Got metadata from org.xdoclet.QDoxMetadataProvider@7bc899"

There is certainly a dearth of XDoclet2 documentation and examples out there -- if you know of good example code out there (OSS), please let me know!

Code:
package com.msobkow.admobile.advdb.rec;

import java.io.Serializable;
import java.util.List;
import java.util.Calendar;

/**
*   AdvDbActionCodeBean implements data attribute mapping for the
*   table advdb.action_code
*   using XDoclet2 and Hibernate 3.
*   <p>
*   Note that if you are setting a required attribute that is implemented
*   by an object (e.g. String, Timestamp), the setter will throw an exception
*   when you try to set it to a <tt>null</tt> value because the copy
*   constructors expect a value to copy.
*   <p>
*   Range checking will similarly fail if you don't pass an appropriate object
*   to the setter.
*   <p>
*   If it's the <i>database</i> that has bad data, the information is still set
*   into the I/O buffer because the EJB2 I/Os directly access the attributes
*   rather than going through the getters and setters.  Not only is this more
*   efficient, it allows the code to bring bad data forward from the database
*   to the application so that it can be corrected and updated.
*
*   @hibernate.mapping
*      auto-import="true"
*      default-access="field"
*      package="com.msobkow.admobile.advdb.rec"
*   @hibernate.class
*      mutable="true"
*      optimistic-lock="all"
*      catalog="advdb"
*      schema="advdb"
*      table="action_code"
*      dynamic-insert="true"
*      dynamic-update="true"
*      lazy="true"
*   @hibernate.cache
*      usage="nonstrict-read-write"
*/
public class AdvDbActionCodeBean
   implements Serializable
{

   /**
    *   The Unique class Id for this object.
    */
   public long         serialVersionUID = 20080401164800002L;

   /**
    *   Id maps the database column action_code.Id.
    *
    *   @hibernate.id
    *      generator-class="assigned"
    *      type="short"
    *      unsaved-value="-1"
    *      access="Field"
    *      name="Id"
    *      column="id"
    */
   short   id;

   /**
    *   Value maps the database column action_code.Value.
    *
    *   @hibernate.property
    *      optimistic-lock="true"
    *      type="long"
    *      name="Value"
    *      lazy="false"
    *      not-null="false"
    *      access="field"
    */
   Long   value;

   /**
    *   ItemDescrId maps the database column action_code.item_descr_id.
    *
    *   @hibernate.property
    *      optimistic-lock="true"
    *      type="long"
    *      name="item_descr_id"
    *      lazy="false"
    *      not-null="true"
    *      access="field"
    */
   long   itemDescrId;

   public AdvDbActionCodeBean() {
      super();
      id = (short)-1;
      value = null;
      itemDescrId = -1L;
   }

   public void resetAttributes() {
      id = (short)-1;
      value = null;
      itemDescrId = -1L;
   }

   public short getId() {
      return( id );
   }

   public void setId( short value ) {
      id = value;
   }

   public Long getValue() {
      return( value );
   }

   public void setValue( Long value ) {
      value = value;
   }

   public long getItemDescrId() {
      return( itemDescrId );
   }

   public void setItemDescrId( long value ) {
      itemDescrId = value;
   }
}



Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 02, 2008 5:25 pm 
Newbie

Joined: Tue Apr 01, 2008 12:30 pm
Posts: 12
Never mind that Generama exception. It was an error in an Ant script that was trying to run the Hibernate plugin against 0 files. *blush*


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 02, 2008 5:32 pm 
Newbie

Joined: Tue Apr 01, 2008 12:30 pm
Posts: 12
I still need a working example of a composite-id in action, as I have 14 out of 40 tables in this application that require composite id's (multiple master/parent relations and many-many join tables.)


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 02, 2008 6:41 pm 
Newbie

Joined: Tue Apr 01, 2008 12:30 pm
Posts: 12
In a fit of desperation I've tried to completely restructure the code to not use the *PKey.java sub-objects. Instead I'm embedding the @hibernate.key-property tags directly in the class.

This has partially worked, but I've run into an error loop with XDoclet. If I implement the code as below, I get an error:
Quote:
Attribute "name" is required and must be specified for element type "key-property"


However, if I define the name property as in the snippet below, I get another error:
Quote:
"name is an invalid parameter name."


This error loop occurs with both XDoclet2 1.0.3 and 1.0.4. I'd originally downgraded to 1.0.3 thinking it was an error in the 1.0.4 code, but apparently the problem has been around longer than I thought.

Thanks in advance for any help you can provide.

Code:
package com.msobkow.admobile.advdb.rec;

import java.io.Serializable;
import java.util.List;
import java.util.Calendar;

import com.msobkow.admobile.advdb.info.AdvDbInfoCheck;

/**
*   AdvDbAdCategoryBean implements data attribute mapping for the
*   table advdb.ad_category
*   using XDoclet2 and Hibernate 3.
*   <p>
*   Note that if you are setting a required attribute that is implemented
*   by an object (e.g. String, Timestamp), the setter will throw an exception
*   when you try to set it to a <tt>null</tt> value because the copy
*   constructors expect a value to copy.
*   <p>
*   Range checking will similarly fail if you don't pass an appropriate object
*   to the setter.
*   <p>
*   If it's the <i>database</i> that has bad data, the information is still set
*   into the I/O buffer because the EJB2 I/Os directly access the attributes
*   rather than going through the getters and setters.  Not only is this more
*   efficient, it allows the code to bring bad data forward from the database
*   to the application so that it can be corrected and updated.
*
*   @hibernate.mapping
*      auto-import="true"
*      default-access="field"
*      package="com.msobkow.admobile.advdb.rec"
*   @hibernate.class
*      mutable="true"
*      optimistic-lock="all"
*      catalog="advdb"
*      schema="advdb"
*      table="ad_category"
*      dynamic-insert="true"
*      dynamic-update="true"
*      lazy="true"
*   @hibernate.cache
*      usage="nonstrict-read-write"
*/
public class AdvDbAdCategoryBean
   implements Serializable,
      AdvDbAdCategoryXfc
{

   /**
    *   The Unique class Id for this object.
    */
   public long         serialVersionUID = 20080402210200003L;

   /**
    *   @hibernate.composite-id
    */
   
   /**
    *   AdvertId maps the database column ad_category.advert_id.
    *
    *   @hibernate.key-property
    *      type="long"
    *      access="field"
    *      column="advert_id"
    */
   long   advertId;

   /**
    *   CategoryId maps the database column ad_category.category_id.
    *
    *   @hibernate.key-property
    *      type="long"
    *      access="field"
    *      column="category_id"
    */
   long   categoryId;

   /**
    *   Master foreign key Advert references AdvDbAdvertBean
    *
    *   @hibernate.many-to-one
    *      optimistic-lock="true"
    *      class="com.msobkow.admobile.advdb.rec.AdvDbAdvertBean"
    *      access="field"
    *      not-null="true"
    *      outer-join="true"
    *      embed-xml="false"
    *      not-found="exception"
    */
   AdvDbAdvertBean   refAdvert;

   /**
    *   Lookup foreign key Category references AdvDbCategoryBean
    *
    *   @hibernate.many-to-one
    *      optimistic-lock="true"
    *      class="com.msobkow.admobile.advdb.rec.AdvDbCategoryBean"
    *      access="field"
    *      not-null="true"
    *      outer-join="true"
    *      embed-xml="false"
    *      not-found="exception"
    */
   AdvDbCategoryBean   refCategory;

   public AdvDbAdCategoryBean() {
      super();
      advertId = -1L;
      categoryId = -1L;
      refAdvert = null;
      refCategory = null;
   }

   public void resetAttributes() {
      advertId = -1L;
      categoryId = -1L;
      refAdvert = null;
      refCategory = null;
   }

   public long getAdvertId() {
      return( advertId );
   }

   public void setAdvertId( long value ) {
      advertId = value;
   }

   public long getCategoryId() {
      return( categoryId );
   }

   public void setCategoryId( long value ) {
      categoryId = value;
   }

   /**
    *   Get the Advert reference.
    *
    *   @return   The Advert reference.
    */
   public AdvDbAdvertBean getAdvert() {
      return( refAdvert );
   }

   /**
    *   Set the Advert reference.
    *
    *   @param   ref   The reference to set.
    */
   public void setAdvert( AdvDbAdvertBean ref ) {
      refAdvert = ref;
   }

   /**
    *   Get the Category reference.
    *
    *   @return   The Category reference.
    */
   public AdvDbCategoryBean getCategory() {
      return( refCategory );
   }

   /**
    *   Set the Category reference.
    *
    *   @param   ref   The reference to set.
    */
   public void setCategory( AdvDbCategoryBean ref ) {
      refCategory = ref;
   }
}



Top
 Profile  
 
 Post subject:
PostPosted: Thu Apr 03, 2008 12:08 pm 
Newbie

Joined: Tue Apr 01, 2008 12:30 pm
Posts: 12
I've noticed that for @hibernate.one-to-many nothing gets generated to the *hbm.xml files. Is this normal?

BTW I've switched back to XDoclet2 1.0.4 as 1.0.3 had the same problem with the name attributes for composite-ids.


Top
 Profile  
 
 Post subject: Success
PostPosted: Tue Apr 08, 2008 3:38 pm 
Newbie

Joined: Tue Apr 01, 2008 12:30 pm
Posts: 12
With a little help from the XDoclet2 interest mailing list at SourceForge, I was able to get the composite-id syntax straightened out (it's not debugged yet, but c'est la vie.)

The key change I had to make is to not specify the PKey as a class.

Code:
package com.msobkow.admobile.advdb.rec;


import java.io.Serializable;
import java.util.Calendar;

import com.msobkow.admobile.advdb.info.AdvDbInfoSchemaCheck;

/**
*   AdvDbNlsKeywordPKeyBean implements primary key mapping over the
*   table advdb.nls_keyword
*   using XDoclet2 and Hibernate 3.
*/
public class AdvDbNlsKeywordPKeyBean
   implements Serializable,
      AdvDbNlsKeywordPKeyXfc
{

   /**
    *   The Unique class Id for this object.
    */
   public long         serialVersionUID = 20080408185900085L;


   /**
    *   KeywordId maps the database column nls_keyword.keyword_id.
    *
    *   @hibernate.key-property
    *      position="1"
    *      column="keyword_id"
    *   @hibernate.column
    *      name="keyword_id"
    *      not-null="true"
    */
   long   keywordId;

   /**
    *   IsoLangId maps the database column nls_keyword.iso_lang_id.
    *
    *   @hibernate.key-property
    *      position="2"
    *      column="iso_lang_id"
    *   @hibernate.column
    *      name="iso_lang_id"
    *      not-null="true"
    */
   short   isoLangId;

   public AdvDbNlsKeywordPKeyBean() {
      super();
      keywordId = -1L;
      isoLangId = (short)-1;
   }

   public void resetAttributes() {
      keywordId = -1L;
      isoLangId = (short)-1;
   }

   public long getKeywordId() {
      return( keywordId );
   }

   public void setKeywordId( long value ) {
      keywordId = value;
   }

   public short getIsoLangId() {
      return( isoLangId );
   }

   public void setIsoLangId( short value ) {
      isoLangId = value;
   }

   public boolean equals( Object o ) {
      if( o instanceof AdvDbNlsKeywordPKeyBean ) {
         AdvDbNlsKeywordPKeyBean obj = (AdvDbNlsKeywordPKeyBean)o;
         if( keywordId != obj.keywordId ) {
            return( false );
         }
         if( isoLangId != obj.isoLangId ) {
            return( false );
         }
         return( true );
      }
      else {
         return( false );
      }
   }

   public int hashCode() {
      int retval = 0;
      retval += keywordId;
      retval += isoLangId;
      return( retval );
   }

}


Code:
package com.msobkow.admobile.advdb.rec;


import java.io.Serializable;
import java.util.List;
import java.util.Calendar;

import org.hibernate.Query;
import org.hibernate.Session;

import com.msobkow.admobile.advdb.info.AdvDbInfoSchemaCheck;

import com.msobkow.core.hibernate.HibernateSessionFactory;

/**
*   AdvDbNlsKeywordBean implements data attribute mapping for the
*   table advdb.nls_keyword
*   using XDoclet2 and Hibernate 3.
*
*   @hibernate.mapping
*      auto-import="true"
*      default-access="field"
*      package="com.msobkow.admobile.advdb.rec"
*   @hibernate.class
*      mutable="true"
*      optimistic-lock="all"
*      catalog="advdb"
*      schema="advdb"
*      table="nls_keyword"
*      dynamic-insert="true"
*      dynamic-update="true"
*      lazy="true"
*   @hibernate.cache
*      usage="nonstrict-read-write"
*/
public class AdvDbNlsKeywordBean
   implements Serializable,
      AdvDbNlsKeywordXfc
{

   /**
    *   The Unique class Id for this object.
    */
   public long         serialVersionUID = 20080408185900086L;


   /**
    *   The primary key for NlsKeyword implements AdvDbNlsKeywordPKeyXfc.
    *
    *   @hibernate.composite-id
    *      unsaved-value="none"
    *      access="field"
    */
   AdvDbNlsKeywordPKeyBean   pKey;

   /**
    *   KWText maps the database column nls_keyword.keyword_text.
    *
    *   @hibernate.property
    *      optimistic-lock="true"
    *      type="java.lang.String"
    *      name="keyword_text"
    *      lazy="false"
    *      not-null="true"
    *      access="field"
    *      length="50"
    */
   String   kWText;

   /**
    *   Master foreign key Keyword references AdvDbKeywordBean
    *
    *   @hibernate.many-to-one
    *      optimistic-lock="true"
    *      class="com.msobkow.admobile.advdb.rec.AdvDbKeywordBean"
    *      access="field"
    *      not-null="true"
    *      outer-join="true"
    *      embed-xml="false"
    *      not-found="exception"
    */
   AdvDbKeywordBean   refKeyword;

   /**
    *   Lookup foreign key Language references AdvDbIsoLangBean
    *
    *   @hibernate.many-to-one
    *      optimistic-lock="true"
    *      class="com.msobkow.admobile.advdb.rec.AdvDbIsoLangBean"
    *      access="field"
    *      not-null="true"
    *      outer-join="true"
    *      embed-xml="false"
    *      not-found="exception"
    */
   AdvDbIsoLangBean   refLanguage;

   /**
    *   RecVersion maps the database column nls_keyword.rec_version.
    *
    *   @hibernate.version
    *      unsaved-value="negative"
    *      type="int"
    *      column="rec_version"
    *      access="field"
    */
   int   recVersion;

   public AdvDbNlsKeywordBean() {
      super();
      pKey = new AdvDbNlsKeywordPKeyBean();
      kWText = null;
      refKeyword = null;
      refLanguage = null;
      recVersion = -1;
   }

   public void resetAttributes() {
      if( pKey != null ) {
         pKey.resetAttributes();
      }
      kWText = null;
      refKeyword = null;
      refLanguage = null;
      recVersion = -1;
   }

   public long getKeywordId() {
      return( pKey.getKeywordId() );
   }

   public void setKeywordId( long value ) {
      pKey.setKeywordId( value );
   }

   public short getIsoLangId() {
      return( pKey.getIsoLangId() );
   }

   public void setIsoLangId( short value ) {
      pKey.setIsoLangId( value );
   }

   /**
    *   Get the primary key.
    *
    *   @return   The primary key of the instance.
    */
   public AdvDbNlsKeywordPKeyBean getPKey() {
      return( pKey );
   }

   /**
    *   Set the primary key.
    *
    *   @param   key   The new primary key.
    */
   public void setPKey( AdvDbNlsKeywordPKeyBean key ) {
      AdvDbInfoSchemaCheck.notNull( AdvDbNlsKeywordBean.class,
         "setPKey", "key", 1, key );
      pKey = key;
   }

   public String getKWText() {
      return( kWText );
   }

   public void setKWText( String value ) {
      kWText = value;
   }

   /**
    *   Get the Keyword reference.
    *
    *   @return   The Keyword reference.
    */
   public AdvDbKeywordBean getKeyword() {
      if( refKeyword == null ) {
         boolean isNull = false;
         if( ! isNull ) {
            refKeyword = AdvDbRecSchemaBean.getSchemaDbIO().getKeywordDbIO().getByKeywordPIdx( getKeywordId() );
         }
      }
      return( refKeyword );
   }

   /**
    *   Set the Keyword reference.
    *
    *   @param   ref   The reference to set.
    */
   public void setKeyword( AdvDbKeywordBean ref ) {
      AdvDbInfoSchemaCheck.notNull( AdvDbNlsKeywordBean.class,
         "setKeyword", "ref", 1, ref);
      refKeyword = ref;
   }
   /**
    *   Get the Language reference.
    *
    *   @return   The Language reference.
    */
   public AdvDbIsoLangBean getLanguage() {
      if( refLanguage == null ) {
         boolean isNull = false;
         if( ! isNull ) {
            refLanguage = AdvDbRecSchemaBean.getSchemaDbIO().getIsoLangDbIO().getByIsoLangPIdx( getIsoLangId() );
         }
      }
      return( refLanguage );
   }

   /**
    *   Set the Language reference.
    *
    *   @param   ref   The reference to set.
    */
   public void setLanguage( AdvDbIsoLangBean ref ) {
      AdvDbInfoSchemaCheck.notNull( AdvDbNlsKeywordBean.class,
         "setLanguage", "ref", 1, ref);
      refLanguage = ref;
   }
   public int getRecVersion() {
      return( recVersion );
   }

//   public void setRecVersion( int value ) {
//      recVersion = value;
//   }

}


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 8 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.