Join Query based on JoinTable with multiple joinColumns [message #389413] |
Tue, 09 June 2009 11:40 |
Sven Hoffmann Messages: 18 Registered: July 2009 |
Junior Member |
|
|
Hi,
I'm using EclipseLink 1.1.1 to access a legacy database (AS400). In order
to map the OneToMany relation of the entity Order to a list of Container
entities a JoinTable with multiple joinColumns and inverseJoinColumns is
used as shown below.
@Entity
class Order {
...
@OneToMany
@JoinTable(name = "ORDERCONTAINER",
joinColumns = {
@JoinColumn(name = "ORDERT", referencedColumnName = "ORDERT"),
@JoinColumn(name = "ORDERN", referencedColumnName = "ORDERN") },
inverseJoinColumns = {
@JoinColumn(name = "CONTAINERP", referencedColumnName = "CONTAINERP"),
@JoinColumn(name = "CONTAINERO", referencedColumnName = "CONTAINERO")
})
private List<Container> containers;
...
}
When using an OUTER JOIN in a JPA Query or adding
@JoinFetch(JoinFetchType.OUTER) to the mapping of containers I found that
only on join column provided by the attribute joinColumns is taken into
account during SQL generation.
The SQL generated by JPA looks like:
SELECT ... FROM ORDER t1
LEFT OUTER JOIN
(ORDERCONTAINER t5
JOIN
CONTAINER t4
ON
(
(
t4.CONTAINERO = t5.CONTAINERO
)
AND
(
t4.CONTAINERP = t5.CONTAINERP
)
)
)
ON
(
t5.ORDERN = t1.ORDERN
)
"... AND t5.ORDERT= t1.ORDERT" is expected as a JOIN condition but missing.
Is this a known issue?
Thanks
Sven
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03726 seconds