Hi, I'm running jboss-4.0.4RC1 and have a problem.
I have a collection of inherited objects that works fine if I don't put in
@OrderBy annotation. But I get an exception if I try to sort on a column that
is located in a inheritence root table.
I have isolated the problem with the following entities.
The root entity.
| @Entity
| @Inheritance(strategy = InheritanceType.JOINED)
| @DiscriminatorColumn(name = "discriminator", length = 1)
| public abstract class Pet implements Serializable {
| @Id
| @GeneratedValue
| public Long id;
|
| @Column(length = 20)
| public String name;
|
| public Integer numLegs; // This is the column I wanna sort on!
| }
|
A subclass that extends the root entity.
| @Entity
| @Inheritance
| @DiscriminatorValue(value = "C")
| public class Cat extends Pet {
| @ManyToOne(optional = false)
| public CatOwner owner;
|
| @Column(length = 10)
| public String furColor;
| }
|
An entity that holds a collection with subclass instances.
| @Entity
| public class CatOwner implements Serializable {
| @Id
| @GeneratedValue
| public Long id;
|
| @Column(length = 40)
| public String name;
|
| @OneToMany(mappedBy = "owner", fetch = FetchType.LAZY)
| @OrderBy("numLegs asc")
| public List<Cat> cats;
| }
|
The exception I get when accessing the collection is:
| org.hibernate.exception.SQLGrammarException: could not initialize a
collection: [test.CatOwner.cats#1]
| at
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65)
| at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.loader.Loader.loadCollection(Loader.java:1926)
| ...
| Caused by: java.sql.SQLException: Unknown column 'cats0_.numLegs' in 'order
clause'
| at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2847)
|
The SQL produced is:
| select cats0_.owner_id as owner3_1_, cats0_.id as id1_, cats0_.id as
id15_0_, cats0_1_.name as name15_0_, cats0_1_.numLegs as numLegs15_0_,
cats0_.owner_id as owner3_18_0_, cats0_.furColor as furColor18_0_ from Cat
cats0_ inner join Pet cats0_1_ on cats0_.id=cats0_1_.id where cats0_.owner_id=?
order by cats0_.numLegs asc
|
If I remove the @OrderBy annotation, it works fine.
If this a bug, or am I doing something wrong here?
Should I file a JIRA task?
I tried to change the collection mapping in CatOwner to List and added
targetEntity = test.Cat.class to the @OneToMany annotation. But that did not
help.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3929173#3929173
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3929173
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user