[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3345?page=c...
]
Andreas Bergander commented on HHH-3345:
----------------------------------------
I added the following code to JoinFetchTest.java in the test suite in 3.3.1.GA:
public void testJoinFetchTypeSafeJavaObject() {
Session s = openSession();
Transaction t = s.beginTransaction();
ItemWrapper iw = (ItemWrapper) s.createQuery("select new
org.hibernate.test.joinfetch.JoinFetchTest$ItemWrapper(i) from Item i left join fetch
i.bids left join fetch i.comments").uniqueResult();
assertTrue( Hibernate.isInitialized( iw.item.getBids() ) );
assertTrue( Hibernate.isInitialized( iw.item.getComments() ) );
t.commit();
s.close();
}
private static class ItemWrapper {
private Item item;
public ItemWrapper(Item item) {
this.item = item;
}
}
This will produce the follwing error:
-------------------------------------------------------------------------------
Test set: org.hibernate.test.joinfetch.JoinFetchTest
-------------------------------------------------------------------------------
Tests run: 5, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.093 sec <<<
FAILURE!
testJoinFetchTypesafeJavaObject(org.hibernate.test.joinfetch.JoinFetchTest) Time elapsed:
0.015 sec <<< ERROR!
org.hibernate.QueryException: query specified join fetching, but the owner of the fetched
association was not present in the select list [FromElement{explicit,not a collection
join,fetch join,fetch non-lazy
properties,classAlias=null,role=org.hibernate.test.joinfetch.Item.bids,tableName=AuctionBids,tableAlias=bids1_,origin=AuctionItems
item0_,colums={item0_.id ,className=org.hibernate.test.joinfetch.Bid}}] [select new
org.hibernate.test.joinfetch.JoinFetchTest$ItemWrapper(i) from
org.hibernate.test.joinfetch.Item i left join fetch i.bids left join fetch i.comments]
I haven't investigated how difficult this would be to fix, but I'm guessing
it's a validation problem.
"select new" + "join fetch" = "owner of the
fetched association was not present in the select list"
---------------------------------------------------------------------------------------------------
Key: HHH-3345
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3345
Project: Hibernate Core
Issue Type: Bug
Affects Versions: 3.2.4.sp1
Reporter: Anthony Ogier
I want to create a List<B>, each B containing an entity with "A" type,
and I also want for each A to force fetching of its "C" property.
public class B {
private A a;
public B(A a) {
this.a = a;
}
}
@Entity
public class A {
@ManyToOne @JoinColumn
private C c;
// +get/setter ...
}
@Entity
public class C {
@Column
private String d;
// +get/setter ...
// +@OneToMany
}
Here is the HQL :
select new B(a) from A a left join fetch a.c
I have that message :
org.hibernate.QueryException: query specified join fetching, but the owner of the fetched
association was not present in the select list
When invoking only "from A a left join fetch a.c", all is good and I have ma
List<A> with its "C" properties fetched.
I think there is a little bug here ... or did I forget something ?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira