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.

Reply via email to