Как применить проверку на стороне сервера в списке объектов при весенней загрузке?весна не проверяет список <Address>, который присутствует в классе сотрудников - PullRequest
0 голосов
/ 20 февраля 2019

Я хочу проверить Список адресов и все его свойства. Город, штат, пин-код. Я дал всю проверку пружины в классе адресов, но она не проверяется.

Адрес класса

@Entity
@Table(name = "ADDRESS")

public class Address {


@Id
@GeneratedValue
@Column(name = "ADDR_ID")
private Long addr_id;

@NotNull(message="city should not be null")
@Column(name = "CITY")
private String city;

@NotNull(message="state should not be null")
@Column(name = "STATE")
private String state;

@NotNull(message="pincode should not be null")
@Column(name = "PINCODE")
private Integer pincode;


@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "FK_EMP_ID", referencedColumnName="ID")
@JsonBackReference
@Valid
@NotNull
private Employee emp;

//getter & setter omitted for breveity

Класс сотрудника

@Entity
@Table(name = "EMPLOYEE")
public class Employee {

@Id
@GeneratedValue
@Column(name = "ID")
private Long id;

@NotNull(message="name should not be null")
@Size(min=1,  max=15 ,message="Name should be min 1 and max 15")
@Column(name = "EMPLOYEE_NAME")
private String name;

@NotNull(message="salary should not be null")
@Column(name = "EMPLOYEE_SALARY")
private Integer salary;

@NotNull(message="department should not be null")
@Column(name = "DEPARTMENT")
private String department;

@OneToMany(mappedBy="emp", cascade={CascadeType.ALL}, 
orphanRemoval=true,fetch=FetchType.LAZY)
@JsonManagedReference
@NotNull(message="address should contain atleast 1 address")
private List<Address> address = new ArrayList<Address>();

//getter & setter omitted for breveity

PostMan Json

{
"name": "aakash",
"salary": 546,
"department": "IT",
"age":32,
"email":"agag@gma",
"address":[
     {
        "city":"Mumbai"
     }
    ]

}

Когда я передаю список адресов и некоторыеиз его свойств он показывает следующую ошибку.

javax.validation.ConstraintViolationException: Validation failed for classes 
[com.example.springDataJPA.model.Address] during persist time for groups 
[javax.validation.groups.Default, ]
List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='pincode should not be null', 
propertyPath=pincode, rootBeanClass=class 
com.example.springDataJPA.model.Address, messageTemplate='pincode should not 
be null'}
ConstraintViolationImpl{interpolatedMessage='state should not be null', 
propertyPath=state, rootBeanClass=class 
com.example.springDataJPA.model.Address, messageTemplate='state should not 
be null'}

Я хочу проверить список адресов со всеми свойствами, и должен и должен возвращать правильное сообщение по умолчанию в формате json.

1 Ответ

0 голосов
/ 20 февраля 2019

@ NotNull проверяет, только если список не равен нулю.Попробуйте вместо этого использовать @NotEmpty.

(Хорошая статья о разнице: https://www.baeldung.com/java-bean-validation-not-null-empty-blank)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...