mirror of https://github.com/apache/openjpa.git
OPENJPA-705: Secondary table for Embdded field is to be looked up in the owner's secondary table.
git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@688919 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
36abd7cb62
commit
42f2f394fb
|
@ -153,11 +153,20 @@ public class FieldMappingInfo
|
|||
public ForeignKey getJoin(final FieldMapping field, Table table,
|
||||
boolean adapt) {
|
||||
// if we have no join columns defined, check class-level join
|
||||
// if the given field is embedded then consider primary table of owner
|
||||
List cols = getColumns();
|
||||
if (cols.isEmpty())
|
||||
cols = field.getDefiningMapping().getMappingInfo().
|
||||
if (cols.isEmpty()) {
|
||||
ClassMapping mapping;
|
||||
if (field.isEmbedded() &&
|
||||
field.getDeclaringMapping().getEmbeddingMapping() != null) {
|
||||
mapping = field.getDeclaringMapping().getEmbeddingMapping()
|
||||
.getFieldMapping().getDeclaringMapping();
|
||||
} else {
|
||||
mapping = field.getDefiningMapping();
|
||||
}
|
||||
cols = mapping.getMappingInfo().
|
||||
getSecondaryTableJoinColumns(_tableName);
|
||||
|
||||
}
|
||||
ForeignKeyDefaults def = new ForeignKeyDefaults() {
|
||||
public ForeignKey get(Table local, Table foreign, boolean inverse) {
|
||||
return field.getMappingRepository().getMappingDefaults().
|
||||
|
|
Loading…
Reference in New Issue