/** * Helper method to join from class to its subclass. Recursive to allow * for multiple hops, starting from the base class. */ private static Joins joinSubclass(Select sel, ClassMapping base, ClassMapping sub, Joins joins) { if (sub == base || sub.getTable() == base.getTable() || sel.isSelected(sub.getTable())) return null; // recurse first so we go least->most derived ClassMapping sup = sub.getJoinablePCSuperclassMapping(); joins = joinSubclass(sel, base, sup, joins); if (joins == null) joins = sel.newJoins(); return sub.joinSuperclass(joins, true); }
/** * Helper method to join from class to its subclass. Recursive to allow * for multiple hops, starting from the base class. */ private static Joins joinSubclass(Select sel, ClassMapping base, ClassMapping sub, Joins joins) { if (sub == base || sub.getTable() == base.getTable() || sel.isSelected(sub.getTable())) return null; // recurse first so we go least->most derived ClassMapping sup = sub.getJoinablePCSuperclassMapping(); joins = joinSubclass(sel, base, sup, joins); if (joins == null) joins = sel.newJoins(); return sub.joinSuperclass(joins, true); }
/** * Helper method to join from class to its subclass. Recursive to allow * for multiple hops, starting from the base class. */ private static Joins joinSubclass(Select sel, ClassMapping base, ClassMapping sub, Joins joins) { if (sub == base || sub.getTable() == base.getTable() || sel.isSelected(sub.getTable())) return null; // recurse first so we go least->most derived ClassMapping sup = sub.getJoinablePCSuperclassMapping(); joins = joinSubclass(sel, base, sup, joins); if (joins == null) joins = sel.newJoins(); return sub.joinSuperclass(joins, true); }
/** * Helper method to join from class to its subclass. Recursive to allow * for multiple hops, starting from the base class. */ private static Joins joinSubclass(Select sel, ClassMapping base, ClassMapping sub, Joins joins) { if (sub == base || sub.getTable() == base.getTable() || sel.isSelected(sub.getTable())) return null; // recurse first so we go least->most derived ClassMapping sup = sub.getJoinablePCSuperclassMapping(); joins = joinSubclass(sel, base, sup, joins); if (joins == null) joins = sel.newJoins(); return sub.joinSuperclass(joins, true); }
/** * Helper method to join from class to its subclass. Recursive to allow * for multiple hops, starting from the base class. */ private static Joins joinSubclass(Select sel, ClassMapping base, ClassMapping sub, Joins joins) { if (sub == base || sub.getTable() == base.getTable() || sel.isSelected(sub.getTable())) return null; // recurse first so we go least->most derived ClassMapping sup = sub.getJoinablePCSuperclassMapping(); joins = joinSubclass(sel, base, sup, joins); if (joins == null) joins = sel.newJoins(); return sub.joinSuperclass(joins, true); }
sel.where(joinSubclass(sel, mapping, subMappings[i], null));
sel.where(joinSubclass(sel, mapping, subMappings[i], null));
sel.where(joinSubclass(sel, mapping, subMappings[i], null));
sel.where(joinSubclass(sel, mapping, subMappings[i], null));
sel.where(joinSubclass(sel, mapping, subMappings[i], null));