[hibernate-issues] [Hibernate-JIRA] Commented: (ANN-551) @SQLInsert. Columns in sql comes in different order depending on the application server used

Søren Pedersen (JIRA) noreply at atlassian.com
Thu Feb 8 03:50:42 EST 2007


    [ http://opensource.atlassian.com/projects/hibernate/browse/ANN-551?page=comments#action_26023 ] 

Søren Pedersen commented on ANN-551:
------------------------------------

Hi Emmanuel,

I have now tried to reorder the list in the following manner in class AnnotationBinder:

List<XProperty> properties = annotatedClass.getDeclaredProperties( accessType );
------ new code begin --------
Collections.sort(properties, new Comparator() {
   public int compare(Object obj, Object obj1) {
     String fileEntry1 = ((XProperty)obj).getName();
     String fileEntry2 = ((XProperty)obj1).getName();

     return fileEntry1.compareTo(fileEntry2);
   }
});
------ new code begin --------
for ( XProperty p : properties ) {

It works!!

I have tested on both WebLogic 9.2 and JBoss 4.0.5 and with different java-versions. 

Do you think it will be included in the next release?

Regards,
Søren






> @SQLInsert. Columns in sql comes in different order depending on the application server used
> --------------------------------------------------------------------------------------------
>
>          Key: ANN-551
>          URL: http://opensource.atlassian.com/projects/hibernate/browse/ANN-551
>      Project: Hibernate Annotations
>         Type: Bug

>   Components: binder
>     Versions: 3.2.1
>  Environment: Hibernate-core 3.2.2, hibernate-annotations 3.2.1. WebLogic 9.2 and JBoss 4.0.5. Oracle 10.
>     Reporter: Søren Pedersen

>
>
> Problem:
> The columns in the sql you specify in SQLInsert annotation has be ordered in the same way hibernate sorts its properties when constructing the insert sql.
> Example:
> When WebLogic 9.2 is used the sql should look like this:
> "insert into acount (name, address, country) values (?,?,?)"
> But when JBoss 4.0.5 is used the sql should look like this:
> "insert into acount (address, country, name) values (?,?,?)"
> The above are only examples.
> Consequence:
> I have to have different SQLInsert's for every JEE apllication server we support, because the properties comes in different order depending on the application server used.
> Suggested solution:
> In the method org.hibernate.cfg.AnnotationBinder.addElementsOfAClass(List<PropertyData> elements, PropertyHolder propertyHolder, boolean isPropertyAnnotated,String propertyAccessor, final XClass annotatedClass, ExtendedMappings mappings)
> This property list shown below should be sorted to make sure that the properties also come in the same order:
> List<XProperty> properties = annotatedClass.getDeclaredProperties( accessType );

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira





More information about the hibernate-issues mailing list