@Override public String load(final Class<? extends RawEntity<?>> key) throws Exception { return delegateTableNameConverter.getName(key); } });
@Override public String getName(Class<? extends RawEntity<?>> clazz) { return tnc.getName(clazz); } }
@Override public String load(final Class<? extends RawEntity<?>> key) throws Exception { return delegateTableNameConverter.getName(key); } });
@Override public String getName(Class<? extends RawEntity<?>> clazz) { return tncSupplier.get().getName(clazz); }
@Override public String getName(Class<? extends RawEntity<?>> entityClass) { final String name = tableNameConverter.getName(entityClass); checkLength(name, "Invalid entity, generated table name (" + name + ") for '" + entityClass.getName() + "' is too long! " + "It should be no longer than " + ConverterUtils.MAX_LENGTH + " chars."); logger.debug("Table name for '{}' is '{}'", entityClass.getName(), name); return name; } }
@Override public String getName(Class<? extends RawEntity<?>> entityClass) { final String name = tableNameConverter.getName(entityClass); checkLength(name, "Invalid entity, generated table name (" + name + ") for '" + entityClass.getName() + "' is too long! " + "It should be no longer than " + ConverterUtils.MAX_LENGTH + " chars."); logger.debug("Table name for '{}' is '{}'", entityClass.getName(), name); return name; } }
public String getName(Class<? extends RawEntity<?>> clazz) { return prefix.prepend(delegate.getName(clazz)); } }
public String getName(Class<? extends RawEntity<?>> clazz) { return prefix.prepend(delegate.getName(clazz)); } }
public boolean isTablePresent(final DatabaseMetaData databaseMetaData, final Class<? extends RawEntity<?>> type) { final String entityTableName = nameConverters.getTableNameConverter().getName(type); final Iterable<String> tableNames = getTableNames(databaseMetaData); return StreamSupport.stream(tableNames.spliterator(), false) .anyMatch(tableName -> tableName.equalsIgnoreCase(entityTableName)); }
public boolean isTablePresent(final DatabaseMetaData databaseMetaData, final Class<? extends RawEntity<?>> type) { final String entityTableName = nameConverters.getTableNameConverter().getName(type); final Iterable<String> tableNames = getTableNames(databaseMetaData); return StreamSupport.stream(tableNames.spliterator(), false) .anyMatch(tableName -> tableName.equalsIgnoreCase(entityTableName)); }
void resolveMappings(TableNameConverter converter) { if (types == null) { return; } while (converter instanceof PluralizedTableNameConverter) { converter = ((PluralizedTableNameConverter) converter).getDelegate(); } for (Class<? extends RawEntity<?>> type : types) { mappings.put(type, converter.getName(type)); } types = null; createReverseMappings(); }
void resolveMappings(TableNameConverter converter) { if (types == null) { return; } while (converter instanceof PluralizedTableNameConverter) { converter = ((PluralizedTableNameConverter) converter).getDelegate(); } for (Class<? extends RawEntity<?>> type : types) { mappings.put(type, converter.getName(type)); } types = null; createReverseMappings(); }
public boolean equalsImpl(RawEntity<K> proxy, Object obj) { if (proxy == obj) { return true; } if (obj instanceof RawEntity<?>) { RawEntity<?> entity = (RawEntity<?>) obj; String ourTableName = getTableNameConverter().getName(proxy.getEntityType()); String theirTableName = getTableNameConverter().getName(entity.getEntityType()); return Common.getPrimaryKeyValue(entity).equals(key) && theirTableName.equals(ourTableName); } return false; }
public boolean equalsImpl(RawEntity<K> proxy, Object obj) { if (proxy == obj) { return true; } if (obj instanceof RawEntity<?>) { RawEntity<?> entity = (RawEntity<?>) obj; String ourTableName = getTableNameConverter().getName(proxy.getEntityType()); String theirTableName = getTableNameConverter().getName(entity.getEntityType()); return Common.getPrimaryKeyValue(entity).equals(key) && theirTableName.equals(ourTableName); } return false; }
public boolean equalsImpl(RawEntity<K> proxy, Object obj) { if (proxy == obj) { return true; } if (obj instanceof RawEntity<?>) { RawEntity<?> entity = (RawEntity<?>) obj; String ourTableName = getTableNameConverter().getName(proxy.getEntityType()); String theirTableName = getTableNameConverter().getName(entity.getEntityType()); return Common.getPrimaryKeyValue(entity).equals(key) && theirTableName.equals(ourTableName); } return false; }
public boolean equalsImpl(RawEntity<K> proxy, Object obj) { if (proxy == obj) { return true; } if (obj instanceof RawEntity<?>) { RawEntity<?> entity = (RawEntity<?>) obj; String ourTableName = getTableNameConverter().getName(proxy.getEntityType()); String theirTableName = getTableNameConverter().getName(entity.getEntityType()); return Common.getPrimaryKeyValue(entity).equals(key) && theirTableName.equals(ourTableName); } return false; }
public Set<DDLIndex> parseIndexes(Class<? extends RawEntity<?>> clazz) { final String tableName = tableNameConverter.getName(clazz); final Stream<DDLIndex> methodIndexes = Arrays.stream(clazz.getMethods()) .filter(Common::isMutatorOrAccessor) .filter(method -> isIndexed(method) || attributeExtendsRawEntity(method)) .map(this::parseIndexField) .map(indexField -> createIndex(indexField, tableName)); final Stream<DDLIndex> classIndexes = StreamUtils.ofNullable(clazz.getAnnotation(Indexes.class)) .map(Indexes::value) .flatMap(Stream::of) .map(index -> parseCompositeIndex(index, tableName, clazz)); final Stream<DDLIndex> superInterfaceIndexes = Arrays.stream(clazz.getInterfaces()) .filter(extendsRawEntity) .filter(isRawEntity.negate()) .filter(isPolymorphic.negate()) .map(superInterface -> parseIndexes((Class<? extends RawEntity<?>>) superInterface)) .flatMap(Set::stream); return Stream.of(methodIndexes, classIndexes, superInterfaceIndexes) .flatMap(Function.identity()) .filter(this::hasFields) .filter(this::hasOnlyValidFields) .collect(Collectors.toSet()); }
public Set<DDLIndex> parseIndexes(Class<? extends RawEntity<?>> clazz) { final String tableName = tableNameConverter.getName(clazz); final Stream<DDLIndex> methodIndexes = Arrays.stream(clazz.getMethods()) .filter(Common::isMutatorOrAccessor) .filter(method -> isIndexed(method) || attributeExtendsRawEntity(method)) .map(this::parseIndexField) .map(indexField -> createIndex(indexField, tableName)); final Stream<DDLIndex> classIndexes = StreamUtils.ofNullable(clazz.getAnnotation(Indexes.class)) .map(Indexes::value) .flatMap(Stream::of) .map(index -> parseCompositeIndex(index, tableName, clazz)); final Stream<DDLIndex> superInterfaceIndexes = Arrays.stream(clazz.getInterfaces()) .filter(extendsRawEntity) .filter(isRawEntity.negate()) .filter(isPolymorphic.negate()) .map(superInterface -> parseIndexes((Class<? extends RawEntity<?>>) superInterface)) .flatMap(Set::stream); return Stream.of(methodIndexes, classIndexes, superInterfaceIndexes) .flatMap(Function.identity()) .filter(this::hasFields) .filter(this::hasOnlyValidFields) .collect(Collectors.toSet()); }
/** * <p>Renders the JOIN portion of the query in the database-specific SQL * dialect. Very few databases deviate from the standard in this matter, * thus the default implementation is usually sufficient.</p> * <p/> * <p>An example return value: <code>" JOIN table1 ON table.id = table1.value"</code></p> * <p/> * <p>There is usually no need to call this method directly. Under normal * operations it functions as a delegate for {@link #renderQuery(Query, TableNameConverter, boolean)}.</p> * * @param query The Query instance from which to determine the JOIN properties. * @param converter The name converter to allow conversion of the query entity * interface into a proper table name. * @return The database-specific SQL rendering of the JOIN portion of the query. */ protected String renderQueryJoins(Query query, TableNameConverter converter) { final StringBuilder sql = new StringBuilder(); for (Map.Entry<Class<? extends RawEntity<?>>, String> joinEntry : query.getJoins().entrySet()) { sql.append(" JOIN ").append(withSchema(converter.getName(joinEntry.getKey()))); if (query.getAlias(joinEntry.getKey()) != null) { sql.append(" ").append(query.getAlias(joinEntry.getKey())); } if (joinEntry.getValue() != null) { sql.append(" ON ").append(processOnClause(joinEntry.getValue())); } } return sql.toString(); }
/** * Gets the name of the table either from the {@link Table Table annotation} if present or from the * {@link TableNameConverter delegate}. * * @param entityClass the entity from which to extract the table name * @return the table name for the given entity * @throws IllegalStateException if the {@link Table Table annotation} value is invalid ({@code null} or * empty {@link String}) */ public String getName(Class<? extends RawEntity<?>> entityClass) { if (entityClass.isAnnotationPresent(TABLE_ANNOTATION)) { return postProcessingTableNameConverter.getName(validate(entityClass.getAnnotation(TABLE_ANNOTATION).value())); } else { return delegateTableNameConverter.getName(entityClass); } }