-1

I have object with validation

@Entity
@Table(name = "heroes")
public class Hero {
    @Id
    private long id;
    @Length(min = 4)
    @Length(max = 14)
    private String name;
    @Min(value = 0)
    @Max(value = 30)
    private int level;
    private String ultimate;
}

And controller that recieve this type of object, but i don't receive any kind of errors in response even than request is blank What should i change to make validation works?

    @PostMapping()
    Hero modifyHero(@RequestBody @Valid Hero hero){
        hero.setId(100);
        return hero;
    }

Post request

{
    "name": "P",
    "level": -15
}

I have tried to use import javax.validation.Valid; and import jakarta.validation.Valid; But it doesn't seems to affect. I was trying to recreate guide on @Valid annotation from baeldung. Pls tell me what else should i check? pom.xml

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </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-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20230618</version>
        </dependency>
        <dependency>
            <groupId>jakarta.persistence</groupId>
            <artifactId>jakarta.persistence-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>jakarta.transaction</groupId>
            <artifactId>jakarta.transaction-api</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.orm</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>6.2.7.Final</version>
        </dependency>
        <dependency>
            <groupId>org.jetbrains</groupId>
            <artifactId>annotations</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.2.5.Final</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.0.7</version>
        </dependency>
        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
            <version>3.0.2</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.0.CR3</version>
        </dependency>
    </dependencies>
Traums
  • 1
  • 2
  • 1
    The problem is your dependencies, which are a mess. Remove all `jakarta.persistence`, `org.hibernate`, `jakarta.validation`, `javax.validation` and the `spring-context` dependency. Add `spring-boot-starter-validation` and make sure you use the `jakarta.validation` package (this is assuming you are on SPring Boot 3.x, if you are on Spring Boot 2.x you need `javax.validation`). – M. Deinum Aug 31 '23 at 09:21

0 Answers0