使用order-by属性,我们可以通过hbm文件执行生成的SQL如何使用order by 查询子句以返回排序后的结果集
数据库结构:
 create
      
      
         
      
      
        table
      
      
         teamOrder (id 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),teamname 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ));
      
        create
      
      
         
      
      
        table
      
      
         teamOrder (id 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),teamname 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ));
         create
      
      
         
      
      
        table
      
      
         studentOrder (id 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),name 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),description 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),team_id 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ));
      
      
        create
      
      
         
      
      
        table
      
      
         studentOrder (id 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),name 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),description 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),team_id 
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ));
         insert
      
      
         
      
      
        into
      
      
         teamOrder 
      
      
        values
      
      
        ("
      
      
        1
      
      
        ","team1");
      
      
        insert
      
      
         
      
      
        into
      
      
         teamOrder 
      
      
        values
      
      
        ("
      
      
        1
      
      
        ","team1");
         insert
      
      
         
      
      
        into
      
      
         studentOrder 
      
      
        values
      
      
        ("
      
      
        1
      
      
        ","a","a","
      
      
        1
      
      
        ");
      
      
        insert
      
      
         
      
      
        into
      
      
         studentOrder 
      
      
        values
      
      
        ("
      
      
        1
      
      
        ","a","a","
      
      
        1
      
      
        ");
         insert
      
      
         
      
      
        into
      
      
         studentOrder 
      
      
        values
      
      
        ("
      
      
        2
      
      
        ","b","b","
      
      
        1
      
      
        ");
      
      
        insert
      
      
         
      
      
        into
      
      
         studentOrder 
      
      
        values
      
      
        ("
      
      
        2
      
      
        ","b","b","
      
      
        1
      
      
        ");
         insert
      
      
         
      
      
        into
      
      
         studentOrder 
      
      
        values
      
      
        ("
      
      
        3
      
      
        ","c","c","
      
      
        1
      
      
        ");
      
      
        insert
      
      
         
      
      
        into
      
      
         studentOrder 
      
      
        values
      
      
        ("
      
      
        3
      
      
        ","c","c","
      
      
        1
      
      
        ");
      
    
pojo:
 package
      
      
         Collection.Order;
      
        package
      
      
         Collection.Order;
         
         import
      
      
         java.util.Set;
      
      
        import
      
      
         java.util.Set;
         
         public
      
      
         
      
      
        class
      
      
         Team 
      
      
      
        
          {
        
      
      
        public
      
      
         
      
      
        class
      
      
         Team 
      
      
      
        
          {
           private
        
        
           String id;
             
        
        
          private
        
        
           String id;
           private
        
        
           String teamname;
             
        
        
          private
        
        
           String teamname;
           private
        
        
           Set students;
             
        
        
          private
        
        
           Set students;
           public
        
        
           String getId() 
        
        
        
          
            {
          
        
        
          public
        
        
           String getId() 
        
        
        
          
            {
             return
          
          
             id;
                
          
          
            return
          
          
             id;
             }
            }
          
        
        
           public
        
        
           
        
        
          void
        
        
           setId(String id) 
        
        
        
          
            {
          
        
        
          public
        
        
           
        
        
          void
        
        
           setId(String id) 
        
        
        
          
            {
             this
          
          
            .id 
          
          
            =
          
          
             id;
                
          
          
            this
          
          
            .id 
          
          
            =
          
          
             id;
             }
            }
          
        
        
           public
        
        
           String getTeamname() 
        
        
        
          
            {
          
        
        
          public
        
        
           String getTeamname() 
        
        
        
          
            {
             return
          
          
             teamname;
                
          
          
            return
          
          
             teamname;
             }
            }
          
        
        
           public
        
        
           
        
        
          void
        
        
           setTeamname(String teamname) 
        
        
        
          
            {
          
        
        
          public
        
        
           
        
        
          void
        
        
           setTeamname(String teamname) 
        
        
        
          
            {
             this
          
          
            .teamname 
          
          
            =
          
          
             teamname;
                
          
          
            this
          
          
            .teamname 
          
          
            =
          
          
             teamname;
             }
            }
          
        
        
           public
        
        
           Set getStudents() 
        
        
        
          
            {
          
        
        
          public
        
        
           Set getStudents() 
        
        
        
          
            {
             return
          
          
             students;
                
          
          
            return
          
          
             students;
             }
            }
          
        
        
           public
        
        
           
        
        
          void
        
        
           setStudents(Set students) 
        
        
        
          
            {
          
        
        
          public
        
        
           
        
        
          void
        
        
           setStudents(Set students) 
        
        
        
          
            {
             this
          
          
            .students 
          
          
            =
          
          
             students;
                
          
          
            this
          
          
            .students 
          
          
            =
          
          
             students;
             }
            }
          
        
        
           
           }
          }
        
      
      
         
         
         
         package
      
      
         Collection.Order;
      
      
        package
      
      
         Collection.Order;
         
         public
      
      
         
      
      
        class
      
      
         Student 
      
      
      
        
          {
        
      
      
        public
      
      
         
      
      
        class
      
      
         Student 
      
      
      
        
          {
           private
        
        
           String id;
            
        
        
          private
        
        
           String id;
           private
        
        
           String name;
            
        
        
          private
        
        
           String name;
           private
        
        
           String description;
            
        
        
          private
        
        
           String description;
           private
        
        
           Team team;
            
        
        
          private
        
        
           Team team;
           public
        
        
           String getId() 
        
        
        
          
            {
          
        
        
          public
        
        
           String getId() 
        
        
        
          
            {
             return
          
          
             id;
                
          
          
            return
          
          
             id;
             }
            }
          
        
        
           public
        
        
           
        
        
          void
        
        
           setId(String id) 
        
        
        
          
            {
          
        
        
          public
        
        
           
        
        
          void
        
        
           setId(String id) 
        
        
        
          
            {
             this
          
          
            .id 
          
          
            =
          
          
             id;
                
          
          
            this
          
          
            .id 
          
          
            =
          
          
             id;
             }
            }
          
        
        
           public
        
        
           String getName() 
        
        
        
          
            {
          
        
        
          public
        
        
           String getName() 
        
        
        
          
            {
             return
          
          
             name;
                
          
          
            return
          
          
             name;
             }
            }
          
        
        
           public
        
        
           
        
        
          void
        
        
           setName(String name) 
        
        
        
          
            {
          
        
        
          public
        
        
           
        
        
          void
        
        
           setName(String name) 
        
        
        
          
            {
             this
          
          
            .name 
          
          
            =
          
          
             name;
                
          
          
            this
          
          
            .name 
          
          
            =
          
          
             name;
             }
            }
          
        
        
           public
        
        
           String getDescription() 
        
        
        
          
            {
          
        
        
          public
        
        
           String getDescription() 
        
        
        
          
            {
             return
          
          
             description;
                
          
          
            return
          
          
             description;
             }
            }
          
        
        
           public
        
        
           
        
        
          void
        
        
           setDescription(String description) 
        
        
        
          
            {
          
        
        
          public
        
        
           
        
        
          void
        
        
           setDescription(String description) 
        
        
        
          
            {
             this
          
          
            .description 
          
          
            =
          
          
             description;
                
          
          
            this
          
          
            .description 
          
          
            =
          
          
             description;
             }
            }
          
        
        
           
           public
        
        
           Team getTeam() 
        
        
        
          
            {
          
        
        
          public
        
        
           Team getTeam() 
        
        
        
          
            {
             return
          
          
             team;
                
          
          
            return
          
          
             team;
             }
            }
          
        
        
           public
        
        
           
        
        
          void
        
        
           setTeam(Team team) 
        
        
        
          
            {
          
        
        
          public
        
        
           
        
        
          void
        
        
           setTeam(Team team) 
        
        
        
          
            {
             this
          
          
            .team 
          
          
            =
          
          
             team;
                
          
          
            this
          
          
            .team 
          
          
            =
          
          
             team;
             }
            }
          
        
        
           }
          }
        
      
      
         
      
    
Hibernate.cfg.xml
 <?
      
      
        xml version='1.0' encoding='UTF-8'
      
      
        ?>
      
        <?
      
      
        xml version='1.0' encoding='UTF-8'
      
      
        ?>
      
      
         <!
      
      
        DOCTYPE hibernate-configuration PUBLIC
      
      
        <!
      
      
        DOCTYPE hibernate-configuration PUBLIC
         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
      
      
        >
                  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
      
      
        >
      
      
         
         <!--
      
      
         Generated by MyEclipse Hibernate Tools.                   
      
      
        -->
      
      
        <!--
      
      
         Generated by MyEclipse Hibernate Tools.                   
      
      
        -->
      
      
         <
      
      
        hibernate-configuration
      
      
        >
      
      
        <
      
      
        hibernate-configuration
      
      
        >
      
      
         
         <
      
      
        session-factory
      
      
        >
      
      
        <
      
      
        session-factory
      
      
        >
      
      
         <
      
      
        property 
      
      
        name
      
      
        ="connection.username"
      
      
        >
      
      
        root
      
      
        </
      
      
        property
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="connection.username"
      
      
        >
      
      
        root
      
      
        </
      
      
        property
      
      
        >
      
      
         <
      
      
        property 
      
      
        name
      
      
        ="connection.url"
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="connection.url"
      
      
        >
      
      
         jdbc:mysql://localhost:3306/schoolproject?characterEncoding=gb2312
      
      
        &
      
      
        useUnicode=true
                jdbc:mysql://localhost:3306/schoolproject?characterEncoding=gb2312
      
      
        &
      
      
        useUnicode=true
         </
      
      
        property
      
      
        >
            
      
      
        </
      
      
        property
      
      
        >
      
      
         <
      
      
        property 
      
      
        name
      
      
        ="dialect"
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="dialect"
      
      
        >
      
      
         org.hibernate.dialect.MySQLDialect
                org.hibernate.dialect.MySQLDialect
         </
      
      
        property
      
      
        >
            
      
      
        </
      
      
        property
      
      
        >
      
      
         <
      
      
        property 
      
      
        name
      
      
        ="myeclipse.connection.profile"
      
      
        >
      
      
        mysql
      
      
        </
      
      
        property
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="myeclipse.connection.profile"
      
      
        >
      
      
        mysql
      
      
        </
      
      
        property
      
      
        >
      
      
         <
      
      
        property 
      
      
        name
      
      
        ="connection.password"
      
      
        >
      
      
        1234
      
      
        </
      
      
        property
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="connection.password"
      
      
        >
      
      
        1234
      
      
        </
      
      
        property
      
      
        >
      
      
         <
      
      
        property 
      
      
        name
      
      
        ="connection.driver_class"
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="connection.driver_class"
      
      
        >
      
      
         com.mysql.jdbc.Driver
                com.mysql.jdbc.Driver
         </
      
      
        property
      
      
        >
            
      
      
        </
      
      
        property
      
      
        >
      
      
         <
      
      
        property 
      
      
        name
      
      
        ="hibernate.dialect"
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="hibernate.dialect"
      
      
        >
      
      
         org.hibernate.dialect.MySQLDialect
                org.hibernate.dialect.MySQLDialect
         </
      
      
        property
      
      
        >
            
      
      
        </
      
      
        property
      
      
        >
      
      
         <
      
      
        property 
      
      
        name
      
      
        ="hibernate.show_sql"
      
      
        >
      
      
        true
      
      
        </
      
      
        property
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="hibernate.show_sql"
      
      
        >
      
      
        true
      
      
        </
      
      
        property
      
      
        >
      
      
         <
      
      
        property 
      
      
        name
      
      
        ="current_session_context_class"
      
      
        >
      
      
        thread
      
      
        </
      
      
        property
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="current_session_context_class"
      
      
        >
      
      
        thread
      
      
        </
      
      
        property
      
      
        >
      
      
         <
      
      
        property 
      
      
        name
      
      
        ="jdbc.batch_size"
      
      
        >
      
      
        15
      
      
        </
      
      
        property
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="jdbc.batch_size"
      
      
        >
      
      
        15
      
      
        </
      
      
        property
      
      
        >
      
      
         <
      
      
        mapping 
      
      
        resource
      
      
        ="Collection/Order/Student.hbm.xml"
      
      
         
      
      
        />
            
      
      
        <
      
      
        mapping 
      
      
        resource
      
      
        ="Collection/Order/Student.hbm.xml"
      
      
         
      
      
        />
      
      
         <
      
      
        mapping 
      
      
        resource
      
      
        ="Collection/Order/Team.hbm.xml"
      
      
         
      
      
        />
            
      
      
        <
      
      
        mapping 
      
      
        resource
      
      
        ="Collection/Order/Team.hbm.xml"
      
      
         
      
      
        />
      
      
         
         
         
         
         </
      
      
        session-factory
      
      
        >
      
      
        </
      
      
        session-factory
      
      
        >
      
      
         
         </
      
      
        hibernate-configuration
      
      
        >
      
      
        </
      
      
        hibernate-configuration
      
      
        >
      
    Student.hbm.xml
 <?
      
      
        xml version="1.0" encoding="utf-8"
      
      
        ?>
      
        <?
      
      
        xml version="1.0" encoding="utf-8"
      
      
        ?>
      
      
         <!
      
      
        DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      
      
        <!
      
      
        DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
      
      
        >
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
      
      
        >
      
      
         <!--
      
      
        <!--
      
      
         
         Mapping file autogenerated by MyEclipse - Hibernate Tools
            Mapping file autogenerated by MyEclipse - Hibernate Tools
         -->
      
      
        -->
      
      
         <
      
      
        hibernate-mapping
      
      
        >
      
      
        <
      
      
        hibernate-mapping
      
      
        >
      
      
         <
      
      
        class 
      
      
        name
      
      
        ="Collection.Order.Student"
      
      
         table
      
      
        ="studentOrder"
      
      
         
      
      
        >
      
      
        <
      
      
        class 
      
      
        name
      
      
        ="Collection.Order.Student"
      
      
         table
      
      
        ="studentOrder"
      
      
         
      
      
        >
      
      
         <
      
      
        id 
      
      
        name
      
      
        ="id"
      
      
         unsaved-value
      
      
        ="null"
      
      
        >
            
      
      
        <
      
      
        id 
      
      
        name
      
      
        ="id"
      
      
         unsaved-value
      
      
        ="null"
      
      
        >
      
      
         <
      
      
        generator 
      
      
        class
      
      
        ="uuid.hex"
      
      
        ></
      
      
        generator
      
      
        >
              
      
      
        <
      
      
        generator 
      
      
        class
      
      
        ="uuid.hex"
      
      
        ></
      
      
        generator
      
      
        >
      
      
         </
      
      
        id
      
      
        >
            
      
      
        </
      
      
        id
      
      
        >
      
      
         
          
         <
      
      
        property 
      
      
        name
      
      
        ="name"
      
      
         type
      
      
        ="string"
      
      
         column
      
      
        ="name"
      
      
        ></
      
      
        property
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="name"
      
      
         type
      
      
        ="string"
      
      
         column
      
      
        ="name"
      
      
        ></
      
      
        property
      
      
        >
      
      
         
           
         <
      
      
        property 
      
      
        name
      
      
        ="description"
      
      
         type
      
      
        ="string"
      
      
         column
      
      
        ="description"
      
      
        ></
      
      
        property
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="description"
      
      
         type
      
      
        ="string"
      
      
         column
      
      
        ="description"
      
      
        ></
      
      
        property
      
      
        >
      
      
         
         <
      
      
        many-to-one 
      
      
        name
      
      
        ="team"
            
      
      
        <
      
      
        many-to-one 
      
      
        name
      
      
        ="team"
      
      
         
         column
      
      
        ="team_id"
                         column
      
      
        ="team_id"
      
      
         class
      
      
        ="Collection.Order.Team"
                         class
      
      
        ="Collection.Order.Team"
      
      
         
         cascade
      
      
        ="none"
                         cascade
      
      
        ="none"
      
      
         
         fetch
      
      
        ="join"
      
      
        >
                         fetch
      
      
        ="join"
      
      
        >
      
      
         </
      
      
        many-to-one
      
      
        >
            
      
      
        </
      
      
        many-to-one
      
      
        >
      
      
         </
      
      
        class
      
      
        >
      
      
        </
      
      
        class
      
      
        >
      
      
         
         </
      
      
        hibernate-mapping
      
      
        >
      
      
        </
      
      
        hibernate-mapping
      
      
        >
      
      
         
      
    Team.hbm.xml
 <?
      
      
        xml version="1.0" encoding="utf-8"
      
      
        ?>
      
        <?
      
      
        xml version="1.0" encoding="utf-8"
      
      
        ?>
      
      
         <!
      
      
        DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      
      
        <!
      
      
        DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
      
      
        >
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
      
      
        >
      
      
         <!--
      
      
        <!--
      
      
         
         Mapping file autogenerated by MyEclipse - Hibernate Tools
            Mapping file autogenerated by MyEclipse - Hibernate Tools
         -->
      
      
        -->
      
      
         <
      
      
        hibernate-mapping
      
      
        >
      
      
        <
      
      
        hibernate-mapping
      
      
        >
      
      
         <
      
      
        class 
      
      
        name
      
      
        ="Collection.Order.Team"
      
      
         table
      
      
        ="teamOrder"
      
      
         
      
      
        >
      
      
        <
      
      
        class 
      
      
        name
      
      
        ="Collection.Order.Team"
      
      
         table
      
      
        ="teamOrder"
      
      
         
      
      
        >
      
      
         <
      
      
        id 
      
      
        name
      
      
        ="id"
      
      
         unsaved-value
      
      
        ="null"
      
      
        >
            
      
      
        <
      
      
        id 
      
      
        name
      
      
        ="id"
      
      
         unsaved-value
      
      
        ="null"
      
      
        >
      
      
         <
      
      
        generator 
      
      
        class
      
      
        ="uuid.hex"
      
      
        ></
      
      
        generator
      
      
        >
              
      
      
        <
      
      
        generator 
      
      
        class
      
      
        ="uuid.hex"
      
      
        ></
      
      
        generator
      
      
        >
      
      
         </
      
      
        id
      
      
        >
            
      
      
        </
      
      
        id
      
      
        >
      
      
         <
      
      
        property 
      
      
        name
      
      
        ="teamname"
      
      
         type
      
      
        ="string"
      
      
         column
      
      
        ="teamname"
      
      
        ></
      
      
        property
      
      
        >
            
      
      
        <
      
      
        property 
      
      
        name
      
      
        ="teamname"
      
      
         type
      
      
        ="string"
      
      
         column
      
      
        ="teamname"
      
      
        ></
      
      
        property
      
      
        >
      
      
         <!--
      
      
         以名称降序返回student集合 
      
      
        -->
            
      
      
        <!--
      
      
         以名称降序返回student集合 
      
      
        -->
      
      
         <
      
      
        set 
      
      
        name
      
      
        ="students"
      
      
         table
      
      
        ="studentOrder"
      
      
         cascade
      
      
        ="all"
      
      
         order-by
      
      
        ="name desc"
      
      
        >
            
      
      
        <
      
      
        set 
      
      
        name
      
      
        ="students"
      
      
         table
      
      
        ="studentOrder"
      
      
         cascade
      
      
        ="all"
      
      
         order-by
      
      
        ="name desc"
      
      
        >
      
      
         <
      
      
        key 
      
      
        column
      
      
        ="team_id"
      
      
        ></
      
      
        key
      
      
        >
              
      
      
        <
      
      
        key 
      
      
        column
      
      
        ="team_id"
      
      
        ></
      
      
        key
      
      
        >
      
      
         <
      
      
        one-to-many 
      
      
        class
      
      
        ="Collection.Order.Student"
      
      
        />
              
      
      
        <
      
      
        one-to-many 
      
      
        class
      
      
        ="Collection.Order.Student"
      
      
        />
      
      
         </
      
      
        set
      
      
        >
            
      
      
        </
      
      
        set
      
      
        >
      
      
         </
      
      
        class
      
      
        >
      
      
        </
      
      
        class
      
      
        >
      
      
         
         </
      
      
        hibernate-mapping
      
      
        >
      
      
        </
      
      
        hibernate-mapping
      
      
        >
      
      
         
      
    
测试代码:
 package
      
      
         Collection.Order;
      
        package
      
      
         Collection.Order;
         
         
         import
      
      
         java.io.File;
      
      
        import
      
      
         java.io.File;
         import
      
      
         java.util.Iterator;
      
      
        import
      
      
         java.util.Iterator;
         import
      
      
         java.util.Set;
      
      
        import
      
      
         java.util.Set;
         
         import
      
      
         org.hibernate.Session;
      
      
        import
      
      
         org.hibernate.Session;
         import
      
      
         org.hibernate.SessionFactory;
      
      
        import
      
      
         org.hibernate.SessionFactory;
         import
      
      
         org.hibernate.Transaction;
      
      
        import
      
      
         org.hibernate.Transaction;
         import
      
      
         org.hibernate.cfg.Configuration;
      
      
        import
      
      
         org.hibernate.cfg.Configuration;
         
         
      
    


 
       
         
					 
					