java.sql.SQLIntegerityConstrainVionlationException:Duplicate entry ‘xxx‘ for key ‘xxx.PRIMARY‘(已解决)

    技术2022-07-20  99

    org.apache.ibatis.exceptions.PersistenceException:Cause: java.sql.SQLIntegerityConstrainVionlationException:Duplicate entry ‘xxx’ for key ‘xxx.PRIMARY’(已解决)

    问题来源描述: 1.构建maven项目,在test文件夹中进行单元测试。 2.测试的内容是对数据库表进行插入 3.但是运行时发现报错,大概意思就是id重复。那么问题来了,我只插入一次 怎么会id重复?

    经过检查最后修改maven插件maven-surefire-plugin

    maven-surefire-plugin简介

    Maven本身并不是一个单元测试框架,它只是在构建执行到特定生命周期阶段的时候,通过插件来执行JUnit或者TestNG的测试用例。这个插 件就是maven-surefire-plugin,也可以称为测试运行器(Test Runner),它能兼容JUnit 3、JUnit 4以及TestNG。

    在默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径(默认为src/test/java/)下所有符合一组命名模式的测试类。这组模式为:

    **/Test*.java:任何子目录下所有命名以Test开关的Java类。 **/*Test.java:任何子目录下所有命名以Test结尾的Java类。 **/*TestCase.java:任何子目录下所有命名以TestCase结尾的Java类。

    在pom中引入

    <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins>

    这个插件是maven进行对junit自动执行,设置跳过为true,不然执行两次,也就是插入了两次 就会报错!

    Processed: 0.012, SQL: 9