@ IntelliJ中无法识别事务性注解我尝试搜索并添加Maven依赖项,但它仍然不起作用。还尝试关闭、清除应用缓存并导入项目的pom,但不起作用...
谢谢你的帮助!
code preview
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Repository
@Transactional
public class UsuarioDaoImp implements UsuarioDao {
@Override
public List<Usuario> getUsuarios() {
return null;
}
}
Error on annotationmaven dependency add, clicking on the one shown doesn't really add it
蓬
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.potencialaboral</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.22</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2条答案
按热度按时间goucqfw61#
要按类查找库,您可以在Maven Search中搜索
fc:[class name]
,下面是一个搜索@Transactional。不幸的是,每个库都有很多版本,因此输出太大。但最终还是可以找到依赖项:注意事项:
1.要使
@Transactional
正常工作,您需要声明Spring的TransactionManager bean。您可以通过调试代码,在事务逻辑中放置断点,并查看堆栈跟踪中是否有事务代理,来检查事务逻辑是否正常工作。1.我们通常不希望我们的Dao/Repository层是事务性的。事务通常从服务层开始,因为它们可能包含不止一个对Dao/Repository的调用。但是你可以通过把这个放在Dao/Repository类上来确保一个事务是 * 必需的 * 在服务层开始的:
dtcbnfnu2#
在不查看pom.xml的情况下,假设您已经配置了所需的正确依赖关系,我的建议是尝试使Intellij Idea缓存无效,重新启动IDE,然后再次重新加载maven依赖关系。
编辑:您提供的pom.xml看起来没有提供@Transactional注解的导入依赖项,此注解来自Spring Transaction依赖项
您可以在您POM中手动添加spring-tx依赖关系,或者您可以使用Spring Boot Starter Data JPA,它也使用此依赖关系
请注意,spring Boot starter data jpa提供了比处理事务更多的功能,它是应用程序的数据访问层的一个抽象,在其中您可以很容易地在代码中实现。