protected int getJavaType() { Object val = disc.getValue(); if (val != null && val != Discriminator.NULL) return JavaTypes.getTypeCode(val.getClass()); // if the user wants the type to be null, we need a jdbc-type // on the column or an existing column to figure out the java type DiscriminatorMappingInfo info = disc.getMappingInfo(); List cols = info.getColumns(); Column col = (cols.isEmpty()) ? null : (Column) cols.get(0); if (col != null) { if (col.getJavaType() != JavaTypes.OBJECT) return col.getJavaType(); if (col.getType() != Types.OTHER) return JavaTypes.getTypeCode(Schemas.getJavaType (col.getType(), col.getSize(), col.getDecimalDigits())); } return JavaTypes.STRING; }
protected int getJavaType() { Object val = disc.getValue(); if (val != null && val != Discriminator.NULL) return JavaTypes.getTypeCode(val.getClass()); // if the user wants the type to be null, we need a jdbc-type // on the column or an existing column to figure out the java type DiscriminatorMappingInfo info = disc.getMappingInfo(); List cols = info.getColumns(); Column col = (cols.isEmpty()) ? null : (Column) cols.get(0); if (col != null) { if (col.getJavaType() != JavaTypes.OBJECT) return col.getJavaType(); if (col.getType() != Types.OTHER) return JavaTypes.getTypeCode(Schemas.getJavaType (col.getType(), col.getSize(), col.getDecimalDigits())); } return JavaTypes.STRING; }
protected int getJavaType() { Object val = disc.getValue(); if (val != null && val != Discriminator.NULL) return JavaTypes.getTypeCode(val.getClass()); // if the user wants the type to be null, we need a jdbc-type // on the column or an existing column to figure out the java type DiscriminatorMappingInfo info = disc.getMappingInfo(); List cols = info.getColumns(); Column col = (cols.isEmpty()) ? null : (Column) cols.get(0); if (col != null) { if (col.getJavaType() != JavaTypes.OBJECT) return col.getJavaType(); if (col.getType() != Types.OTHER) return JavaTypes.getTypeCode(Schemas.getJavaType (col.getType(), col.getSize(), col.getDecimalDigits())); } return JavaTypes.STRING; }
protected int getJavaType() { Object val = disc.getValue(); if (val != null && val != Discriminator.NULL) return JavaTypes.getTypeCode(val.getClass()); // if the user wants the type to be null, we need a jdbc-type // on the column or an existing column to figure out the java type DiscriminatorMappingInfo info = disc.getMappingInfo(); List cols = info.getColumns(); Column col = (cols.isEmpty()) ? null : (Column) cols.get(0); if (col != null) { if (col.getJavaType() != JavaTypes.OBJECT) return col.getJavaType(); if (col.getType() != Types.OTHER) return JavaTypes.getTypeCode(Schemas.getJavaType (col.getType(), col.getSize(), col.getDecimalDigits())); } return JavaTypes.STRING; }
protected int getJavaType() { Object val = disc.getValue(); if (val != null && val != Discriminator.NULL) return JavaTypes.getTypeCode(val.getClass()); // if the user wants the type to be null, we need a jdbc-type // on the column or an existing column to figure out the java type DiscriminatorMappingInfo info = disc.getMappingInfo(); List cols = info.getColumns(); Column col = (cols.isEmpty()) ? null : (Column) cols.get(0); if (col != null) { if (col.getJavaType() != JavaTypes.OBJECT) return col.getJavaType(); if (col.getType() != Types.OTHER) return JavaTypes.getTypeCode(Schemas.getJavaType (col.getType(), col.getSize(), col.getDecimalDigits())); } return JavaTypes.STRING; }
@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(); }
public void map(boolean adapt) { ClassMapping cls = disc.getClassMapping(); if (cls.getJoinablePCSuperclassMapping() != null || cls.getEmbeddingMetaData() != null) throw new MetaDataException(_loc.get("not-base-disc", cls)); DiscriminatorMappingInfo info = disc.getMappingInfo(); info.assertNoJoin(disc, true); info.assertNoForeignKey(disc, !adapt); info.assertNoUnique(disc, false); Column tmplate = new Column(); tmplate.setJavaType(getJavaType()); tmplate.setName("typ"); Column[] cols = info.getColumns(disc, new Column[]{ tmplate }, adapt); disc.setColumns(cols); disc.setColumnIO(info.getColumnIO()); Index idx = info.getIndex(disc, cols, adapt); disc.setIndex(idx); }
public void map(boolean adapt) { ClassMapping cls = disc.getClassMapping(); if (cls.getJoinablePCSuperclassMapping() != null || cls.getEmbeddingMetaData() != null) throw new MetaDataException(_loc.get("not-base-disc", cls)); DiscriminatorMappingInfo info = disc.getMappingInfo(); info.assertNoJoin(disc, true); info.assertNoForeignKey(disc, !adapt); info.assertNoUnique(disc, false); Column tmplate = new Column(); tmplate.setJavaType(getJavaType()); DBDictionary dict = cls.getMappingRepository().getDBDictionary(); DBIdentifier typName = DBIdentifier.newColumn("typ", dict != null ? dict.delimitAll() : false); tmplate.setIdentifier(typName); Column[] cols = info.getColumns(disc, new Column[]{ tmplate }, adapt); disc.setColumns(cols); disc.setColumnIO(info.getColumnIO()); Index idx = info.getIndex(disc, cols, adapt); disc.setIndex(idx); }
public void map(boolean adapt) { ClassMapping cls = disc.getClassMapping(); if (cls.getJoinablePCSuperclassMapping() != null || cls.getEmbeddingMetaData() != null) throw new MetaDataException(_loc.get("not-base-disc", cls)); DiscriminatorMappingInfo info = disc.getMappingInfo(); info.assertNoJoin(disc, true); info.assertNoForeignKey(disc, !adapt); info.assertNoUnique(disc, false); Column tmplate = new Column(); tmplate.setJavaType(getJavaType()); DBDictionary dict = cls.getMappingRepository().getDBDictionary(); DBIdentifier typName = DBIdentifier.newColumn("typ", dict != null ? dict.delimitAll() : false); tmplate.setIdentifier(typName); Column[] cols = info.getColumns(disc, new Column[]{ tmplate }, adapt); disc.setColumns(cols); disc.setColumnIO(info.getColumnIO()); Index idx = info.getIndex(disc, cols, adapt); disc.setIndex(idx); }
public void map(boolean adapt) { ClassMapping cls = disc.getClassMapping(); if (cls.getJoinablePCSuperclassMapping() != null || cls.getEmbeddingMetaData() != null) throw new MetaDataException(_loc.get("not-base-disc", cls)); DiscriminatorMappingInfo info = disc.getMappingInfo(); info.assertNoJoin(disc, true); info.assertNoForeignKey(disc, !adapt); info.assertNoUnique(disc, false); Column tmplate = new Column(); tmplate.setJavaType(getJavaType()); DBDictionary dict = cls.getMappingRepository().getDBDictionary(); DBIdentifier typName = DBIdentifier.newColumn("typ", dict != null ? dict.delimitAll() : false); tmplate.setIdentifier(typName); Column[] cols = info.getColumns(disc, new Column[]{ tmplate }, adapt); disc.setColumns(cols); disc.setColumnIO(info.getColumnIO()); Index idx = info.getIndex(disc, cols, adapt); disc.setIndex(idx); }
public void map(boolean adapt) { ClassMapping cls = disc.getClassMapping(); if (cls.getJoinablePCSuperclassMapping() != null || cls.getEmbeddingMetaData() != null) throw new MetaDataException(_loc.get("not-base-disc", cls)); DiscriminatorMappingInfo info = disc.getMappingInfo(); info.assertNoJoin(disc, true); info.assertNoForeignKey(disc, !adapt); info.assertNoUnique(disc, false); Column tmplate = new Column(); tmplate.setJavaType(getJavaType()); DBDictionary dict = cls.getMappingRepository().getDBDictionary(); DBIdentifier typName = DBIdentifier.newColumn("typ", dict != null ? dict.delimitAll() : false); tmplate.setIdentifier(typName); Column[] cols = info.getColumns(disc, new Column[]{ tmplate }, adapt); disc.setColumns(cols); disc.setColumnIO(info.getColumnIO()); Index idx = info.getIndex(disc, cols, adapt); disc.setIndex(idx); }