0

get the ConstraintViolationException while persisting. The error message provided below:

jakarta.validation.ConstraintViolationException: Validation failed for classes [com.Shop.Bird.Models.Product] during persist time for groups [jakarta.validation.groups.Default, ] List of constraint violations:[ ConstraintViolationImpl{interpolatedMessage='ne doit pas ĂȘtre nul', propertyPath=imageURL, rootBeanClass=class com.Shop.Bird.Models.Product, messageTemplate='{jakarta.validation.constraints.NotNull.message}'} ] at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.validate(BeanValidationEventListener.java:148) ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.onPreInsert(BeanValidationEventListener.java:80) ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.action.internal.EntityInsertAction.preInsert(EntityInsertAction.java:211) ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:96) ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:612) ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.engine.spi.ActionQueue.lambda$executeActions$1(ActionQueue.java:483) ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final] at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721) ~[na:na] at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:480) ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:329) ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final] at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39) ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final]

My Conttroller:

package com.Shop.Bird.web;


import com.Shop.Bird.DTOS.ProductDTO;
import com.Shop.Bird.service.Productservice;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/products")
@AllArgsConstructor
@Slf4j
public class ProductAPI {
    Productservice productservice;
    @PostMapping("/create")
    public String Addproduct( @RequestBody ProductDTO productDTO){
        this.productservice.Addproduct(productDTO);
        return "Success ";
    }
    @GetMapping("/liste")
    public List<ProductDTO> Getproducts(){
        return this.productservice.GetAllproduct();
    }
    @DeleteMapping("/delete/{idproduct}")
    public String Deleteproducts(@PathVariable Long idproduct){
        this.productservice.Deleteproduct(idproduct);
        return "Success ";
    }
    @PostMapping("/update/{idproduct}")
    public String Updateproducts(@PathVariable Long idproduct, @RequestBody ProductDTO productDTO){
        productDTO.setId(idproduct);
        this.productservice.Updateproduct(productDTO);
        return "Success ";
    }

}

My Product entity

package com.Shop.Bird.Models;

import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "Products")
public class Product {
    @Id
    @GeneratedValue
    private Long id;
    private @NotNull String name;
    private @NotNull String imageURL;
    private @NotNull double price;
    private @NotNull String description;
    @ManyToOne
    @JoinColumn(name="category_id")
    Categorie categorie ;
}

My Deppandencies

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
          <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <scope>runtime</scope>
                <version>2.1.214</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </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.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
Black8ird
  • 1
  • 1

0 Answers0