From: Emmanuel B. <emm...@hi...> - 2006-06-21 20:41:32
|
The initial issue is fixed, But now I do have some weird type conversion using HSQLDB (didn't tried the other ones). basically I do have public Dimension() { private int length; private int width; } ints are converted into INTEGER types at the DB level, fine The following native SQL query, mapped using scalar autodiscovery select length * width as surface, length * width * 10 as volume ... returns String for the first argument and Double for the second The same query used to return BigInteger for the first one and BigDecimal for the second. Steve Ebersole wrote: > > Try it again from SVN. > > -----Original Message----- > From: hib...@li... > [mailto:hib...@li...] On Behalf Of > Emmanuel Bernard > Sent: Sunday, June 18, 2006 10:21 PM > To: Hibernate development > Subject: [Hibernate] New error on Annotation query > > Has something changed that I haven't propagated in my code? > > > org.hibernate.HibernateException: cannot perform autodiscovery on > queries with non-scalar results > at > org.hibernate.loader.custom.CustomLoader$NonScalarResultColumnProcessor. > performDiscovery(CustomLoader.java:453) > at > org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader. > java:511) > at org.hibernate.loader.Loader.getResultSet(Loader.java:1677) > at org.hibernate.loader.Loader.doQuery(Loader.java:662) > at > org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loade > r.java:224) > at org.hibernate.loader.Loader.doList(Loader.java:2144) > at > org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2028) > at org.hibernate.loader.Loader.list(Loader.java:2023) > at > org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:290) > at > org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695) > at > org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142 > ) > at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:150) > at > org.hibernate.test.annotations.query.QueryTest.testNativeQueryAndComposi > tePKAndComponents(QueryTest.java:195) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav > a:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at org.hibernate.test.annotations.TestCase.runTest(TestCase.java:67) > at > com.intellij.rt.execution.junit2.JUnitStarter.main(JUnitStarter.java:32) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav > a:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at > com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) > > > > @NamedNativeQuery(name = "compositekey", > query = "select name, model, speed, lname as lastn, fname as > firstn, length, width, length * width as surface, length * width *10 as > volume from SpaceShip", > resultSetMapping = "compositekey") > } > > > @SqlResultSetMapping(name = "compositekey", > entities = @EntityResult(entityClass = > org.hibernate.test.annotations.query.SpaceShip.class, > fields = { > @FieldResult(name = "name", column = "name"), > @FieldResult(name = "model", column = "model"), > @FieldResult(name = "speed", column = "speed"), > @FieldResult(name = "dimensions.width", column = > "width"), > @FieldResult(name = "captain.lastname", column = > "lastn"), > @FieldResult(name = "dimensions.length", column = > "length"), > @FieldResult(name = "captain.firstname", column = > "firstn") > }), > columns = {@ColumnResult(name = "surface"), > @ColumnResult(name = "volume")}) > > > > _______________________________________________ > hibernate-devel mailing list > hib...@li... > https://lists.sourceforge.net/lists/listinfo/hibernate-devel > |