Use of Named SQL queries by R4R Team

Named SQL queries can be defined in the mapping document and called in exactly the same way as a named HQL query. In this case, no need to call addEntity().

   
SELECT person.NAME AS {person.name}, person.AGE AS {person.age},
person.SEX AS {person.sex} FROM PERSON person WHERE person.NAME LIKE :namePattern
List people = sess.getNamedQuery("persons").setString("namePattern", namePattern)
    .setMaxResults(50)
    .list();

The element is use to join associations and the element is used to define queries which initialize collections,

SELECT person.NAME AS {person.name},person.AGE AS {person.age},person.SEX AS {person.sex}, address.STREET AS {address.street}, address.CITY AS {address.city},           address.STATE AS {address.state}, address.ZIP AS {address.zip} FROM PERSON person
JOIN ADDRESS address ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'
WHERE person.NAME LIKE :namePattern

A named SQL query may return a scalar value. You must declare the column alias and Hibernate type using the element:

SELECT p.NAME AS name, p.AGE AS age, FROM PERSON p WHERE p.NAME LIKE 'Hiber%'

Now we can externalize the resultset mapping information in a element which will allow you to either reuse them across several named queries or through the setResultSetMapping() API.

    SELECT person.NAME AS {person.name},
           person.AGE AS {person.age},
           person.SEX AS {person.sex},
           address.STREET AS {address.street},
           address.CITY AS {address.city},
           address.STATE AS {address.state},
           address.ZIP AS {address.zip}
    FROM PERSON person
    JOIN ADDRESS address
   ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'
    WHERE person.NAME LIKE :namePattern

You can, alternatively, use the resultset mapping information in your hbm files directly in java code.

List students = sess.createSQLQuery
    (
        "select {student.*}, {kitten.*} from cats cat, cats kitten where kitten.mother = student.id"
    )
    .setResultSetMapping("studentAndKitten")
    .list();
Leave a Comment:
Search
Categories
R4R Team
R4Rin Top Tutorials are Core Java,Hibernate ,Spring,Sturts.The content on R4R.in website is done by expert team not only with the help of books but along with the strong professional knowledge in all context like coding,designing, marketing,etc!