diff --git a/src/main/java/org/springframework/data/mybatis/repository/dialect/Dialect.java b/src/main/java/org/springframework/data/mybatis/repository/dialect/Dialect.java index 0f156ba8..f72b5c35 100644 --- a/src/main/java/org/springframework/data/mybatis/repository/dialect/Dialect.java +++ b/src/main/java/org/springframework/data/mybatis/repository/dialect/Dialect.java @@ -108,6 +108,9 @@ public final String quote(String name) { } } + public String wrapTableName(String tableName) { + return tableName; + } public boolean supportsSequences() { return false; diff --git a/src/main/java/org/springframework/data/mybatis/repository/dialect/PostgreSQLDialect.java b/src/main/java/org/springframework/data/mybatis/repository/dialect/PostgreSQLDialect.java index 4d6eb457..0c273c16 100644 --- a/src/main/java/org/springframework/data/mybatis/repository/dialect/PostgreSQLDialect.java +++ b/src/main/java/org/springframework/data/mybatis/repository/dialect/PostgreSQLDialect.java @@ -52,6 +52,11 @@ public PostgreSQLDialect() { super(); } + @Override + public String wrapTableName(String tableName) { + return "\"" + tableName + "\""; + } + @Override public String getDatabaseId() { return "postgresql"; diff --git a/src/main/java/org/springframework/data/mybatis/repository/support/MybatisMapperGenerator.java b/src/main/java/org/springframework/data/mybatis/repository/support/MybatisMapperGenerator.java index 7178bee7..9ae1648e 100644 --- a/src/main/java/org/springframework/data/mybatis/repository/support/MybatisMapperGenerator.java +++ b/src/main/java/org/springframework/data/mybatis/repository/support/MybatisMapperGenerator.java @@ -253,7 +253,7 @@ public void doWithPersistentProperty(PersistentProperty pp) { public String buildFrom(boolean basic) { StringBuilder builder = new StringBuilder(); - builder.append(persistentEntity.getTableName()).append(" ").append(quota(persistentEntity.getEntityName())); + builder.append(dialect.wrapTableName(persistentEntity.getTableName())).append(" ").append(quota(persistentEntity.getEntityName())); if (!basic) { builder.append(buildLeftOuterJoin()); } @@ -268,7 +268,7 @@ private String buildLeftOuterJoin() { public void doWithAssociation(Association> ass) { if ((ass instanceof MybatisManyToOneAssociation)) { final MybatisManyToOneAssociation association = (MybatisManyToOneAssociation) ass; - builder.append(" left outer join ").append(association.getObversePersistentEntity().getTableName()).append(" ").append(quota(persistentEntity.getEntityName() + "." + association.getInverse().getName())) + builder.append(" left outer join ").append(dialect.wrapTableName(association.getObversePersistentEntity().getTableName())).append(" ").append(quota(persistentEntity.getEntityName() + "." + association.getInverse().getName())) .append(" on ").append(quota(persistentEntity.getEntityName())).append(".").append(association.getJoinColumnName()) .append("=").append(quota(persistentEntity.getEntityName() + "." + association.getInverse().getName())).append(".").append(association.getJoinReferencedColumnName()); } diff --git a/src/main/java/org/springframework/data/mybatis/repository/support/MybatisSimpleRepositoryMapperGenerator.java b/src/main/java/org/springframework/data/mybatis/repository/support/MybatisSimpleRepositoryMapperGenerator.java index f5877888..166344d7 100644 --- a/src/main/java/org/springframework/data/mybatis/repository/support/MybatisSimpleRepositoryMapperGenerator.java +++ b/src/main/java/org/springframework/data/mybatis/repository/support/MybatisSimpleRepositoryMapperGenerator.java @@ -115,7 +115,7 @@ private String render() throws IOException { builder.append(""); if (!isFragmentExist("TABLE_NAME")) { - builder.append("" + persistentEntity.getTableName() + ""); + builder.append("" + dialect.wrapTableName(persistentEntity.getTableName()) + ""); } if (dialect.supportsSequences()) { if (!isFragmentExist("SEQUENCE")) { @@ -182,7 +182,7 @@ private void buildUpdateSQL(final StringBuilder builder) { return; } builder.append(""); - builder.append("update ").append(persistentEntity.getTableName()); + builder.append("update ").append(dialect.wrapTableName(persistentEntity.getTableName())); builder.append(""); persistentEntity.doWithProperties(new SimplePropertyHandler() { @@ -356,7 +356,7 @@ private void buildFindByPager(StringBuilder builder) { } private void buildDeleteAll(StringBuilder builder) { - builder.append("truncate table " + persistentEntity.getTableName() + " "); + builder.append("truncate table " +dialect.wrapTableName( persistentEntity.getTableName() )+ " "); } private void buildDeleteById(final StringBuilder builder) { @@ -558,7 +558,7 @@ private void buildInsertSQL(final StringBuilder builder) { IdentityColumnSupport identityColumnSupport = dialect.getIdentityColumnSupport(); if (idProperty.getIdGenerationType() == IDENTITY || (idProperty.getIdGenerationType() == AUTO && identityColumnSupport.supportsIdentityColumns())) { builder.append(""); - builder.append(dialect.getIdentityColumnSupport().getIdentitySelectString(persistentEntity.getTableName(), idProperty.getColumnName(), idProperty.getJdbcType().TYPE_CODE)); + builder.append(dialect.getIdentityColumnSupport().getIdentitySelectString(dialect.wrapTableName(persistentEntity.getTableName()), idProperty.getColumnName(), idProperty.getJdbcType().TYPE_CODE)); builder.append(""); } else if (idProperty.getIdGenerationType() == SEQUENCE || (idProperty.getIdGenerationType() == AUTO && dialect.supportsSequences())) { builder.append(""); @@ -568,7 +568,7 @@ private void buildInsertSQL(final StringBuilder builder) { } builder.append("