I am learning spring boot and trying to connect to mysql. I write a simple sql query using @Query and @Param. Below is my query.
@Repository
public interface UnitRepository extends JpaRepository<Unit, Long> {
@Query(value = "SELECT * FROM unit u WHERE u.id=:id AND u.display_name=:displayName",
nativeQuery = true)
List<Unit> getByFilter(@Param("id") Long id, @Param("displayName") String displayName);
}
And then i use getByFilter in another:
public List<Unit> getByFilter(Long id, String displayName) {
System.out.println(displayName);
return unitRepository.getByFilter(id, displayName);
}
When i test with id=0 and displayName=kilogram, i expect the query is SELECT * FROM unit u WHERE u.id=0 AND u.display_name=kilogram
but actually it is SELECT * FROM unit u WHERE u.id=? AND u.display_name=?
.
Below is my pom.xml
<?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>3.3.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.api</groupId>
<artifactId>simple-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>simple-api</name>
<description>Demo project for Spring Boot</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>22</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MySQL dependency -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
How can i figure out my problem??
I tried to change maven and jdk version but it still doesn’t work?
phúc phạm is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.