Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » EclipseLink » QueryHints.LEFT_FETCH not working
QueryHints.LEFT_FETCH not working [message #778458] Thu, 12 January 2012 11:34 Go to previous message
Jonathan Jones is currently offline Jonathan Jones
Messages: 4
Registered: January 2012
Junior Member
First of all apologies if this has been posted before or its in the wrong place. I have had a good trawl through these forums but cant seem to solve it.

INFO: EclipseLink, version: Eclipse Persistence Services - 2.3.0.v20110604-r9504
INFO: Running GlassFish Version: GlassFish Server Open Source Edition 3.1.1 (build 12)

Here is my scenario


@Entity
public class ObjectA{
/.......... other code ........./
private Integer subvalueid;
private String textvalue;

@OneToOne(optional=true,fetch=FetchType.EAGER)
@JoinColumn(name="subvalueid",unique=true,nullable=false,updatable=false,insertable=false)
private ObjectB subvalue;
}

@Entity
public class ObjectB{
/.......... other code ........./
private Integer id;
private String description;
}

Query query = entityManager.createQuery("SELECT A FROM ObjectA a WHERE a.textvalue = :val1 OR a.subvalue.description = :val2");
query.setHint(QueryHints.LEFT_FETCH, "a.subvalue");
query.setParameter("val1", "/..something ../");
query.setParameter("val2", "/..something ../");
query.getResultList();



My query produces
SELECT /*lots of fields*/ FROM ObjectA a, ObjectB b WHERE ((a.textvalue = ? OR (b.description) = ?) AND (b.ID = a.subvalueid))

b.ID = a.subvalueid means that only records where there is a match between the relationship are returned.

I want to try and enforce the query to produce a LEFT JOIN so that it includes records in table / ObjectA even if there is no entry in table / ObjectB

I have tried allsorts of QueryHints and JOIN FETCH on the query but am having no such look.

Any help is greatly appreciated.

Many thanks in advance

Jonathan Jones
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic:set schema name for stored procedures using JPA
Next Topic:java.lang.NoSuchMethodError: javax.persistence.EntityManager.getCriteriaBuilder()Ljavax/persistence/
Goto Forum:
  


Current Time: Sun May 19 14:51:27 EDT 2013

Powered by FUDForum. Page generated in 0.05754 seconds