我正在嘗試彈簧數(shù)據(jù) JDBC (1.1.0.M3)。我有一個包含電子郵件屬性(電子郵件類)的 Formateur(教師)類。電子郵件是一個不可變的類。當(dāng)我從數(shù)據(jù)庫中檢索所有教師時,我有以下內(nèi)容異常:java.lang.UnsupportedOperationException:無法設(shè)置不可變屬性 fr.yestech.data.jdbc.domain.Email.email看來spring data JDBC對final屬性不好用!public class Formateur { private @Id Long id; private String nom; @Embedded private Email email;...}電子郵件類(不可變類,所以沒有設(shè)置器?。﹑ublic final class Email { private final String email; private static final Pattern EMAIL_PATTERN = Pattern.compile("^[_A-Za-z]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"); private Email(String email) { Objects.requireNonNull(email, "Adresse email doit être non null!"); if (!EMAIL_PATTERN.matcher(email).matches()) throw new IllegalArgumentException("L'adresse email est invalide !"); this.email = email; } public static Email of(String email) { return new Email(email); }...}應(yīng)用@SpringBootApplicationpublic class SpringJdbcApplication { public static void main(String[] args) { SpringApplication.run(SpringJdbcApplication.class, args); } @Bean ApplicationRunner applicationRunner(FormateurRepository formateurRepository) { return args -> { Formateur teacher = Formateur.of("YesTech", Email.of("yestech@email.com"), Adresse.of("Goux")); formateurRepository.save(teacher); formateurRepository.findAll().forEach(System.out::println); }; }}
1 回答
幕布斯7119047
TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個贊
這確實(shí)是一個錯誤。您可以通過添加“凋零”來解決它
private Email withEmail(String email) {
return new withEmail(email);
}
它甚至可能是私人的。
我為此創(chuàng)建了一個問題,因此很快就會得到修復(fù)。
添加回答
舉報(bào)
0/150
提交
取消
