-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: #1386(github) 逻辑删除字段为Date类型并且非删除数据日期为null
- Loading branch information
Showing
10 changed files
with
439 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
69 changes: 69 additions & 0 deletions
69
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/H2LogicDeleteTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
/* | ||
* Copyright (c) 2011-2019, hubin ([email protected]). | ||
* <p> | ||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not | ||
* use this file except in compliance with the License. You may obtain a copy of | ||
* the License at | ||
* <p> | ||
* https://www.apache.org/licenses/LICENSE-2.0 | ||
* <p> | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
* License for the specific language governing permissions and limitations under | ||
* the License. | ||
*/ | ||
package com.baomidou.mybatisplus.test.h2; | ||
|
||
import java.util.List; | ||
|
||
import javax.annotation.Resource; | ||
|
||
import org.junit.jupiter.api.Assertions; | ||
import org.junit.jupiter.api.MethodOrderer; | ||
import org.junit.jupiter.api.Order; | ||
import org.junit.jupiter.api.Test; | ||
import org.junit.jupiter.api.TestMethodOrder; | ||
import org.junit.jupiter.api.extension.ExtendWith; | ||
import org.springframework.test.context.ContextConfiguration; | ||
import org.springframework.test.context.junit.jupiter.SpringExtension; | ||
|
||
import com.baomidou.mybatisplus.test.h2.entity.H2User; | ||
import com.baomidou.mybatisplus.test.h2.entity.H2UserLogicDelete; | ||
import com.baomidou.mybatisplus.test.h2.enums.AgeEnum; | ||
import com.baomidou.mybatisplus.test.h2.mapper.H2UserLogicDeleteMapper; | ||
|
||
/** | ||
* Mybatis Plus H2 Junit Test | ||
* | ||
* @author hubin | ||
* @since 2018-06-05 | ||
*/ | ||
@TestMethodOrder(MethodOrderer.OrderAnnotation.class) | ||
@ExtendWith(SpringExtension.class) | ||
@ContextConfiguration(locations = {"classpath:h2/spring-logic-delete-h2.xml"}) | ||
class H2LogicDeleteTest extends BaseTest { | ||
|
||
@Resource | ||
protected H2UserLogicDeleteMapper logicDeleteMapper; | ||
|
||
@Test | ||
@Order(1) | ||
void crudTest() { | ||
String name = "LogicDelete4Date"; | ||
H2UserLogicDelete user = new H2UserLogicDelete(); | ||
user.setAge(AgeEnum.ONE); | ||
user.setName(name); | ||
logicDeleteMapper.insert(user); | ||
Assertions.assertNotNull(user.getTestId(), "id should not be null"); | ||
Assertions.assertNull(user.getLastUpdatedDt()); | ||
|
||
logicDeleteMapper.deleteById(user.getTestId()); | ||
|
||
List<H2User> userList = queryByName(name); | ||
Assertions.assertTrue(userList!=null && !userList.isEmpty()); | ||
Assertions.assertNotNull(userList.get(0).getLastUpdatedDt(),"lastUpdateDt should not be null after logic delete"); | ||
|
||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
89 changes: 89 additions & 0 deletions
89
...s/src/test/java/com/baomidou/mybatisplus/test/h2/config/MybatisPlusConfigLogicDelete.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
/* | ||
* Copyright (c) 2011-2020, baomidou ([email protected]). | ||
* <p> | ||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not | ||
* use this file except in compliance with the License. You may obtain a copy of | ||
* the License at | ||
* <p> | ||
* https://www.apache.org/licenses/LICENSE-2.0 | ||
* <p> | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | ||
* License for the specific language governing permissions and limitations under | ||
* the License. | ||
*/ | ||
package com.baomidou.mybatisplus.test.h2.config; | ||
|
||
import javax.sql.DataSource; | ||
|
||
import org.apache.ibatis.plugin.Interceptor; | ||
import org.apache.ibatis.session.ExecutorType; | ||
import org.apache.ibatis.session.SqlSessionFactory; | ||
import org.apache.ibatis.type.EnumOrdinalTypeHandler; | ||
import org.apache.ibatis.type.JdbcType; | ||
import org.mybatis.spring.annotation.MapperScan; | ||
import org.springframework.context.annotation.Bean; | ||
import org.springframework.context.annotation.Configuration; | ||
import org.springframework.core.io.ResourceLoader; | ||
|
||
import com.baomidou.mybatisplus.annotation.IdType; | ||
import com.baomidou.mybatisplus.core.MybatisConfiguration; | ||
import com.baomidou.mybatisplus.core.config.GlobalConfig; | ||
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector; | ||
import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; | ||
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; | ||
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor; | ||
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean; | ||
|
||
/** | ||
* Mybatis Plus Config | ||
* | ||
* @author Caratacus | ||
* @since 2017/4/1 | ||
*/ | ||
@Configuration | ||
@MapperScan("com.baomidou.mybatisplus.test.h2.mapper") | ||
public class MybatisPlusConfigLogicDelete { | ||
|
||
@Bean("mybatisSqlSession") | ||
public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ResourceLoader resourceLoader, GlobalConfig globalConfig) throws Exception { | ||
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean(); | ||
sqlSessionFactory.setDataSource(dataSource); | ||
// sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config-object-factory.xml")); | ||
sqlSessionFactory.setTypeAliasesPackage("com.baomidou.mybatisplus.test.h2.entity.persistent"); | ||
MybatisConfiguration configuration = new MybatisConfiguration(); | ||
// configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class); | ||
// org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration(); | ||
configuration.setJdbcTypeForNull(JdbcType.NULL); | ||
/* | ||
* 下划线转驼峰开启 | ||
*/ | ||
configuration.setMapUnderscoreToCamelCase(true); | ||
configuration.setDefaultExecutorType(ExecutorType.REUSE); | ||
configuration.setDefaultEnumTypeHandler(EnumOrdinalTypeHandler.class); //默认枚举处理 | ||
sqlSessionFactory.setConfiguration(configuration); | ||
PaginationInterceptor pagination = new PaginationInterceptor(); | ||
OptimisticLockerInterceptor optLock = new OptimisticLockerInterceptor(); | ||
sqlSessionFactory.setPlugins(new Interceptor[]{ | ||
pagination, | ||
optLock, | ||
new PerformanceInterceptor() | ||
}); | ||
sqlSessionFactory.setGlobalConfig(globalConfig); | ||
sqlSessionFactory.setTypeEnumsPackage("com.baomidou.mybatisplus.test.h2.enums"); | ||
return sqlSessionFactory.getObject(); | ||
} | ||
|
||
@Bean | ||
public GlobalConfig globalConfiguration() { | ||
GlobalConfig conf = new GlobalConfig(); | ||
conf.setSqlInjector(new LogicSqlInjector()) | ||
.setEnableSqlRunner(true) | ||
.setDbConfig(new GlobalConfig.DbConfig() | ||
.setLogicDeleteValue("NOW()") | ||
.setLogicNotDeleteValue("NULL") | ||
.setIdType(IdType.ID_WORKER)); | ||
return conf; | ||
} | ||
} |
Oops, something went wrong.