Fantastic - That is exactly what I want :)
I'd also like to see this :
**** map creation from specified key and value columns (either key,value or
aliased)
select new keyedmap ( order.id as key, order as value) from Order order
select new keyedmap ( order.id, order ) from Order order
However this doesn't fit the [List find(String] interface of session
A soloution may be to return a list of 1 element that contains the map
**** plugable loaders
Allow user defined loaders (or object factories) rather than hibernate
creating the instances
i.e.
Configuration.registerLoader('customLoader', new CustomLoader());
select load customLoader( order.id as id, order.key as key, order ) from ...
interface Loader {
Object load(String[] aliases, Object[] aliasedValues, Object[]
positionalValues)
}
Hibernate would call load(["id", "name"], [1, "SFG34AF"], [orderInstance])
for each row
**** JavaBean construction from aliased properties
class OrderView {
long id,
Customer customer
// getters and setters
}
select new OrderView(o.id as id , o.customer as customer) from Order o
The loader will create a new OrderView instance from the default
constructor, and set the properties using the alias names
Could have plugable loaders - JavaBeanPropertyLoader, FieldAccessLoader
etc.. issue : could these be specifyable per query ? if so, how ?
This could probably be implemented with the custom loader idea above
select load javaBeanLoader( 'com.whatever.OrderView' as class, o.id as id,
o.customer as customer ) from Order o
however this syntax isn't purfect.
**** final thoughts
After writing this, some of this can probably be supported outside of
hibernate by getting hibernate to return a list of maps and transforming
this using a custom transformer. One advantage of getting hibernate to do
it would be the creation of less garbage.
Just my 2c worth.
Cameron
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:hibernate-devel-
> [EMAIL PROTECTED] On Behalf Of Gavin King
> Sent: Tuesday, 5 April 2005 2:07 PM
> To: '[email protected]'
> Subject: [Hibernate] New HQL features in CVS
>
>
> select foo.bar as fb, foo.x as fx from Foo foo ( use together with
> Query.getReturnAliases() )
>
> select new list(foo.bar, foo.x) from Foo foo
>
> select new map( foo.bar as fb, foo.x as fx) from Foo foo
>
>
> Enjoy!
>
> --
> Gavin King
> +61 410 534 454
> +1 404 822 8349
> callto://gavinking
>
> Hibernate
> [EMAIL PROTECTED]
> http://hibernate.org
>
> JBoss Inc
> [EMAIL PROTECTED]
> http://jboss.com
>
>
>
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> hibernate-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/hibernate-devel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
hibernate-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hibernate-devel