Excellent. Makes sense now that I see the solution.

Thanks!

Earnie!




________________________________
From: Fay Wang (via Nabble) <[email protected]>
To: Earnie Dyke <[email protected]>
Sent: Tuesday, April 28, 2009 12:12:13 PM
Subject: Re: Inner Join


Hi Earnie, 
   For your named query: 
"SELECT p FROM Person p ORDER BY p.me DESC, p.lastName, p.firstName, 
p.middleName, p.lineage.description" 

   If you take out order by p.lineage.description, the push-down SQL will 
become left outer join. 

Fay 

--- On Tue, 4/28/09, Earnie Dyke <earnied...@...> wrote: 


> From: Earnie Dyke <earnied...@...> 
> Subject: Inner Join 
> To: us...@... 
> Date: Tuesday, April 28, 2009, 7:09 AM 
> 
> Greetings all, 
> 
> I am using OpenJPA v1.2.1 with the following class and the 
> SQL that is 
> created uses an INNER JOIN for the join between the PERSON 
> and LINEAGE 
> tables. How can I make that an OUTER JOIN? 
> 
> Earnie! 
> 
> @Entity 
> @EPenEntity(listNamedQueryName = "Person.people") 
> @Table(name = "PERSON") 
> @NamedQueries({ 
>     @NamedQuery(name = "Person.people", query = 
> "SELECT p FROM Person p 
> ORDER BY p.me DESC, p.lastName, p.firstName, p.middleName, 
> p.lineage.description"), 
>     @NamedQuery(name = "Person.findMe", query = 
> "SELECT p FROM Person p 
> WHERE p.me = true") 
> }) 
> public class Person implements Serializable { 
> 
>     private static final long serialVersionUID = 
> 1L; 
>     @Id 
>     @GeneratedValue(strategy = 
> GenerationType.IDENTITY) 
>     private Integer id; 
>     @Column(name = "ME", nullable = false) 
>     private Boolean me = false; 
>     @Column(name = "DATEOFBIRTH") 
>     @Temporal(TemporalType.DATE) 
>     private Date dateOfBirth; 
>     @Column(name = "GENDER", length = 6) 
>     private String gender; 
>     @Column(name = "FIRSTNAME", length = 50) 
>     private String firstName; 
>     @Column(name = "MIDDLENAME", length = 50) 
>     private String middleName; 
>     @Column(name = "LASTNAME", length = 50) 
>     private String lastName; 
>     @ManyToOne(fetch = 
> FetchType.EAGER,cascade={CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH})
>  
>     @JoinColumn(name = "LINEAGEID") 
>     private Lineage lineage; 
>     @ManyToOne(fetch = 
> FetchType.EAGER,cascade={CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH})
>  
>     @JoinColumn(name = "TITLEID") 
>     private Title title; 
>     @OneToMany(fetch = 
> FetchType.EAGER,cascade={CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH})
>  
>     @JoinTable(name = "PERSONADDRESS", 
> joinColumns = 
>         @JoinColumn(name = 
> "PERSONID"),inversejoincolum...@joincolumn(name="ADDRESSID")) 
>     private Collection<PersonAddress> 
> addresses = new 
> ArrayList<PersonAddress>(0); 
>     @OneToMany(fetch = 
> FetchType.EAGER,cascade={CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH})
>  
>     @JoinTable(name = "PERSONPHONENUMBER", 
> joinColumns = 
>         @JoinColumn(name = 
> "PERSONID"),inversejoincolum...@joincolumn(name="PHONENUMBERID")) 
>     private Collection<PersonPhoneNumber> 
> phoneNumbers = new 
> ArrayList<PersonPhoneNumber>(0)..... 
> 
> ...other stuff not shown 
> 
> -- 
> View this message in context: 
> http://n2.nabble.com/Inner-Join-tp2733679p2733679.html
> Sent from the OpenJPA Users mailing list archive at 
> Nabble.com. 
> 
> 




________________________________
 
This email is a reply to your post @ 
http://n2.nabble.com/Inner-Join-tp2733679p2734448.html
You can reply by email or by visting the link above.
-- 
View this message in context: 
http://n2.nabble.com/Inner-Join-tp2733679p2734839.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to