Я хочу проверить список адресов и все его свойства город, штат, пин-код Я дал всю весеннюю проверку в классе Address, но она не прошла проверку.
Класс адреса
@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
Почтальон Джсон
{
"name": "aakash",
"salary": 546,
"department": "IT",
"age":32,
"email":"agag@gma",
"address":[
{
"city":"Mumbai"
}
]
}
When i pass list of address and some of its properties it's showing following error.
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.

@NotNull проверяет, только если список не равен нулю. Вместо этого попробуйте использовать @NotEmpty.
(Хорошая статья о разнице: https://www.baeldung.com/java-bean-validation-not-null-empty-blank)
Это отдельная проблема. Добавьте @ Valid в адреса List<String> (как вы сделали с частным Employee emp) или в общие (адреса List<@Valid String>), последний предпочтительнее в соответствии с документами валидатора Hibernate (docs.jboss.org/hibernate/stable/validator/reference/en-US/…, я полагаю, что вы используете этот поставщик проверки)
Он не проверяет свойства адреса