@Override public Object getStrategy(Version vers, boolean adapt) { Object strat = super.getStrategy(vers, adapt); ClassMapping cls = vers.getClassMapping(); if (strat != null || cls.getJoinablePCSuperclassMapping() != null || cls.getVersionField() != null) return strat; if (vers.getMappingInfo().getColumns().isEmpty()) return NoneVersionStrategy.getInstance(); return new NumberVersionStrategy(); }
@Override public Object getStrategy(Version vers, boolean adapt) { Object strat = super.getStrategy(vers, adapt); ClassMapping cls = vers.getClassMapping(); if (strat != null || cls.getJoinablePCSuperclassMapping() != null || cls.getVersionField() != null) return strat; int nColumn = vers.getMappingInfo().getColumns().size(); switch (nColumn) { case 0 : return NoneVersionStrategy.getInstance(); case 1 : return new NumberVersionStrategy(); default: return new MultiColumnVersionStrategy(); } }
@Override public Object getStrategy(Version vers, boolean adapt) { Object strat = super.getStrategy(vers, adapt); ClassMapping cls = vers.getClassMapping(); if (strat != null || cls.getJoinablePCSuperclassMapping() != null || cls.getVersionField() != null) return strat; int nColumn = vers.getMappingInfo().getColumns().size(); switch (nColumn) { case 0 : return NoneVersionStrategy.getInstance(); case 1 : return new NumberVersionStrategy(); default: return new MultiColumnVersionStrategy(); } }
@Override public Object getStrategy(Version vers, boolean adapt) { Object strat = super.getStrategy(vers, adapt); ClassMapping cls = vers.getClassMapping(); if (strat != null || cls.getJoinablePCSuperclassMapping() != null || cls.getVersionField() != null) return strat; int nColumn = vers.getMappingInfo().getColumns().size(); switch (nColumn) { case 0 : return NoneVersionStrategy.getInstance(); case 1 : return new NumberVersionStrategy(); default: return new MultiColumnVersionStrategy(); } }
@Override public Object getStrategy(Discriminator disc, boolean adapt) { Object strat = super.getStrategy(disc, adapt); ClassMapping cls = disc.getClassMapping(); if (strat != null || cls.getJoinablePCSuperclassMapping() != null || disc.getMappingInfo().getValue() != null) return strat; // don't use a column-based discriminator approach unless user has set // a column explicitly or is using flat inheritance explicitly if (!disc.getMappingInfo().getColumns().isEmpty()) return new ValueMapDiscriminatorStrategy(); ClassMapping base = cls; while (base.getMappingInfo().getHierarchyStrategy() == null && base.getPCSuperclassMapping() != null) base = base.getPCSuperclassMapping(); strat = base.getMappingInfo().getHierarchyStrategy(); if (FlatClassStrategy.ALIAS.equals(strat)) return new ValueMapDiscriminatorStrategy(); if (VerticalClassStrategy.ALIAS.equals(strat) && dict.joinSyntax != JoinSyntaxes.SYNTAX_TRADITIONAL) return new SubclassJoinDiscriminatorStrategy(); return NoneDiscriminatorStrategy.getInstance(); }
@Override public Object getStrategy(Discriminator disc, boolean adapt) { Object strat = super.getStrategy(disc, adapt); ClassMapping cls = disc.getClassMapping(); if (strat != null || cls.getJoinablePCSuperclassMapping() != null || disc.getMappingInfo().getValue() != null) return strat; // don't use a column-based discriminator approach unless user has set // a column explicitly or is using flat inheritance explicitly if (!disc.getMappingInfo().getColumns().isEmpty()) return new ValueMapDiscriminatorStrategy(); ClassMapping base = cls; while (base.getMappingInfo().getHierarchyStrategy() == null && base.getPCSuperclassMapping() != null) base = base.getPCSuperclassMapping(); strat = base.getMappingInfo().getHierarchyStrategy(); if (FlatClassStrategy.ALIAS.equals(strat)) return new ValueMapDiscriminatorStrategy(); if (VerticalClassStrategy.ALIAS.equals(strat) && dict.joinSyntax != JoinSyntaxes.SYNTAX_TRADITIONAL) return new SubclassJoinDiscriminatorStrategy(); return NoneDiscriminatorStrategy.getInstance(); }
@Override public Object getStrategy(Discriminator disc, boolean adapt) { Object strat = super.getStrategy(disc, adapt); ClassMapping cls = disc.getClassMapping(); if (strat != null || cls.getJoinablePCSuperclassMapping() != null || disc.getMappingInfo().getValue() != null) return strat; // don't use a column-based discriminator approach unless user has set // a column explicitly or is using flat inheritance explicitly if (!disc.getMappingInfo().getColumns().isEmpty()) return new ValueMapDiscriminatorStrategy(); ClassMapping base = cls; while (base.getMappingInfo().getHierarchyStrategy() == null && base.getPCSuperclassMapping() != null) base = base.getPCSuperclassMapping(); strat = base.getMappingInfo().getHierarchyStrategy(); if (FlatClassStrategy.ALIAS.equals(strat)) return new ValueMapDiscriminatorStrategy(); if (VerticalClassStrategy.ALIAS.equals(strat) && dict.joinSyntax != JoinSyntaxes.SYNTAX_TRADITIONAL) return new SubclassJoinDiscriminatorStrategy(); return NoneDiscriminatorStrategy.getInstance(); }
@Override public Object getStrategy(Discriminator disc, boolean adapt) { Object strat = super.getStrategy(disc, adapt); ClassMapping cls = disc.getClassMapping(); if (strat != null || cls.getJoinablePCSuperclassMapping() != null || disc.getMappingInfo().getValue() != null) return strat; // don't use a column-based discriminator approach unless user has set // a column explicitly or is using flat inheritance explicitly if (!disc.getMappingInfo().getColumns().isEmpty()) return new ValueMapDiscriminatorStrategy(); ClassMapping base = cls; while (base.getMappingInfo().getHierarchyStrategy() == null && base.getPCSuperclassMapping() != null) base = base.getPCSuperclassMapping(); strat = base.getMappingInfo().getHierarchyStrategy(); if (FlatClassStrategy.ALIAS.equals(strat)) return new ValueMapDiscriminatorStrategy(); if (VerticalClassStrategy.ALIAS.equals(strat) && dict.joinSyntax != JoinSyntaxes.SYNTAX_TRADITIONAL) return new SubclassJoinDiscriminatorStrategy(); return NoneDiscriminatorStrategy.getInstance(); }