为了账号安全,请及时绑定邮箱和手机立即绑定

Spring data jdbc 似乎不适用于最终属性

Spring data jdbc 似乎不适用于最终属性

森栏 2022-11-02 16:13:53
我正在尝试弹簧数据 JDBC (1.1.0.M3)。我有一个包含电子邮件属性(电子邮件类)的 Formateur(教师)类。电子邮件是一个不可变的类。当我从数据库中检索所有教师时,我有以下内容异常:java.lang.UnsupportedOperationException:无法设置不可变属性 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;...}电子邮件类(不可变类,所以没有设置器!)public 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);    }...}应用@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贡献1794条经验 获得超8个赞

这确实是一个错误。您可以通过添加“凋零”来解决它


private Email withEmail(String email) {

    return new withEmail(email);

}

它甚至可能是私人的。


为此创建了一个问题,因此很快就会得到修复。



查看完整回答
反对 回复 2022-11-02
  • 1 回答
  • 0 关注
  • 50 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信