xdoclet column order

"Mark Rines" <[email protected]>
Newsgroups gmane.comp.java.xdoclet.user
Message-ID <000401c6ad09$e01e9790$6501a8c0@Saluki2>
Fellow xdoclet users, have been using XDoclet 1.2.3, and have the following
2 questions:

 

1)  how do you control the order of the columns output to the mapping file.
It appears that the

    identifier field is always first and that columns are ordered first from
the child-most class up through

    the columns of the parent classes, seeming to always follow a java
destructor call pattern. 

    I would like the order to be more like a constructor call where a child
class' columns are 

    appended in the generated mapping file after its parent's columns.

    

2)  how do you completely override a component property's column name. It
appears that the @hibernat.component tag

    does not have a column= option and that one must use the
@hibernat.component's prefix attribute to prepend to the component's
@hibernate.property's column= name.

    Don't want to prepend a prefix, want the method using the component to
override the component's column name.

 

In other words, given these three classes:

 

public class Entity{

    private String id;

    private String name;

    private TimeStamp timeCreated;

            

   /**  @hibernate.id  generator-class="native" column="EntityID" */

    public long getIdAsLong() {

        long i = Long.parseLong(id);

        return i;

    }

 

    /**  @hibernate.property  */

    public String getName(){

        return name;

    }

 

    /**  @hibernate.component class="com.inforise.time.TimeStamp"
prefix="TimeCreated__"  */

    public TimeStamp getTimeCreated() {

        return timeCreated;

    }    

}

            

public class TimeStamp{

    private Date date;

            

    /**  @hibernate.property type="timestamp"  */

    public Date getDate(){

        return date;

    }

}

 

 /*  @hibernate.class table="users" */

public class User extends Entity{

    private String email = null;

 

     /*  @hibernate.property column="Email" */

    public String getEmail(){

        return email;

    }

}

 

 

Am getting the following mapping file generated by xdoclet:

 

<hibernate-mapping>

    <class name="com.inforise.use.User" table="users" >

  

        <id name="idAsLong" column="EntityID" type="long" >

            <generator class="native"> </generator>

        </id>

  

        <property name="email" type="java.lang.String" update="true"
insert="true" column="Email" />

 

        <property name="name" type="java.lang.String" update="true"
insert="true" column="name" />

  

        <component name="timeCreated" class="com.inforise.time.TimeStamp" >

            <property name="date" type="timestamp" update="true"
insert="true" column="TimeCreated__date" />

        </component>

     </class>

</hibernate-mapping>

 

 

Would like to have this instead :

 

<hibernate-mapping>

    <class name="com.inforise.use.User" table="users" >

        <id name="idAsLong" column="EntityID" type="long" >

            <generator class="native"> </generator>

        </id>

 

<!-- answer for question 1 should provide the following order of fields: -->

        <property name="name" type="java.lang.String" update="true"
insert="true" column="name" />

  

        <component name="timeCreated" class="com.inforise.time.TimeStamp" >

 

   <!-- answer for question 2 should provide this line instead (note
column="TimeCreated" instead of "TimeCreated__date"): -->

            <property name="date" type="timestamp" update="true"
insert="true" column="TimeCreated" />

        </component>

 

        <property name="email" type="java.lang.String" update="true"
insert="true" column="Email" />

 

     </class>

</hibernate-mapping>

 

Currently, am working around question 2 using xtask to modify the column
attribute, but it ain't pretty:~; 

it would be nice if all method related @hibernate tags would have a column
attribute that completely overrides

any derived column names, ie.: @hibernate.component column="TimeCreated"...
and <component column="TimeCreated"...

 

On the other hand, have not as of yet come up with a work-around for
question 1, but am thinking there should be

a way to set the order pattern since there is a pattern now. Perhaps there
could be a orderPattern="constructor|destructor" 

attribute for the hibernatedoclet tag.

 

Sincerely,

Mark Rines

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

_______________________________________________
xdoclet-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.