Я хочу понять, как интернационализировать сообщение об ошибке сущности JPA. Я понимаю, как это работает в контроллере с использованием автоматического проводного MessageSource, но в моем случае я хочу сделать это в сущности JPA. Я не интересуюсь тем же способом, что и проблема с контроллером, потому что, по-моему, не оптимизирована для автоматического подключения полного MessageSource к этой сущности. Если у кого-то есть простой пример, чтобы показать мне, как это работает с простой сущностью, такой как моя. Мой проект использует spring-boot 2.2; JPA; и тимелист.
Сущность, которую я использую:
package com.bananasplit.weblab2.entities;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
@Entity
@Table(name = "todo")
public class Todo {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id")
private Long id;
@Column(name = "name", nullable = false)
@NotEmpty
@Size(min=2, max=30) // error message is already internationalized here with spring-boot
private String name;
@Column(name = "category", nullable = false)
@NotEmpty
@Pattern(regexp="(WORK|PERSONAL|SPECIAL)",
message="Category must be WORK or PERSONNAL or SPECIAL.") // here is the message I want to internationalize
private String category;
public Todo() {}
public Todo(String name, String category) {
this.name = name;
this.category = category;
}
@Override
public String toString() {
return String.format(
"Todo[id=%d, name='%s', category='%s']",
id, name, category);
}
public Long getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
}