Hi! Just letting you know that I now has implemented support for the <meta> attribute in Hibernate hbm.xml.
My local codegenerator does now support the following <meta attributes> tags. "description" - Text that will be included as an javadoc comment "extends" - name of the class the entity class should extend. Is ignored in subclass and joined-subclass. "implements" - name of an interface the entity class should implement. Can be repeated N times. "generated-class" - name that the codegenerator should use instead of the actual mapped class. This class would then be extended by the actual mapped class (done by the user) A fullblown example could be as follows: <class name="codegen.test.Person"> <meta attribute="extends">codegen.test.AbstractPersistent</meta> <meta attribute="implements">codegen.test.IVersionable</meta> <meta attribute="implements">codegen.test.IAuditable</meta> <meta attribute="generated-class">codegen.test.AutoPerson</meta> <meta attribute="description"> AutoPerson is a simple class, which illustrates the possibilities of the Hibernate meta tag. @author Zim Zala Bim </meta> <id name="id" type="string"><generator class="assigned"/></id> <one-to-one name="myUser" class="codegen.test.User"/> <property name="name" type="string"> <meta attribute="description">A javadoc comment for the field name...</meta> </property> </class> And this currently gives the following code: package codegen.test; import java.io.Serializable; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; /** * AutoPerson is a simple class, which illustrates the possibilities of the Hibernate meta tag. * @author Zim Zala Bim */ abstract public class AutoPerson extends codegen.test.AbstractPersistent implements Serializable, codegen.test.IVersionable, codegen.test.IAuditable { /** identifier field */ private String id; /** * A javadoc comment for the field name... */ private String name; /** nullable persistent field */ private codegen.test.User myUser; /** full constructor */ public AutoPerson(java.lang.String id, java.lang.String name, codegen.test.User myUser) { this.id = id; this.name = name; this.myUser = myUser; } /** default constructor */ public AutoPerson() { } /** minimal constructor */ public AutoPerson(java.lang.String id) { this.id = id; } public java.lang.String getId() { return this.id; } public void setId(java.lang.String id) { this.id = id; } public java.lang.String getName() { return this.name; } public void setName(java.lang.String name) { this.name = name; } public codegen.test.User getMyUser() { return this.myUser; } public void setMyUser(codegen.test.User myUser) { this.myUser = myUser; } public String toString() { return ToStringBuilder.reflectionToString(this); } public boolean equals(Object other) { if ( !(other instanceof AutoPerson) ) return false; AutoPerson castOther = (AutoPerson) other; return new EqualsBuilder().append(this.id, castOther.id).isEquals(); } public int hashCode() { return new HashCodeBuilder().append(id).toHashCode(); } } I'll work a little more with regards to adding support for these meta-tags for composites, and all the collection types (if at all reasonable) + a wiki page describing the capabilities of the codegenerator. Hope you like it :) I welcome any comments :) /max p.s. A side question: Does anyone have an "Good Code Example" for which code you would like to be generated for add and remove methods for bi-directional collections ? ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ hibernate-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/hibernate-devel