小编Ste*_*sen的帖子

Spring表达式语言(SpEL)不适用于JPA/hibernate实体

我试图使用SpEL模板从实体生成文件名.我有两个看起来类似的实体:

@Entity
public class Invoice implements Serializable {
    private String invoicenumber;
    private Customer customer;

    @Column(name = "invoicenumber", nullable = false, length = 20)
    public String getInvoicenumber() {
        return this.invoicenumber;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "fk_customer", nullable = false)
    public Customer getCustomer() {
        return this.customer;
    }
}

@Entity
public class Customer implements Serializable {
    private String firstname;
    private String lastname;

    @Column(name = "firstname", nullable = false, length = 20)
    public String getFirstname() {
        return this.firstname;
    }

    @Column(name = "lastname", nullable …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jpa spring-el spring-data-jpa

5
推荐指数
1
解决办法
639
查看次数

将@Future和LocalDate的自定义ConstraintValidator添加到Spring Boot项目

我有一个用于输入日期的Spring MVC表单,输入被发送到Controller并通过标准Spring MVC验证进行了验证。

模型:

public class InvoiceForm {
    @Future
    private LocalDate invoicedate;
}
Run Code Online (Sandbox Code Playgroud)

控制器:

public String postAdd(@Valid @ModelAttribute InvoiceForm invoiceForm, BindingResult result) {
    ....
}
Run Code Online (Sandbox Code Playgroud)

提交表单时,出现以下错误:

public class InvoiceForm {
    @Future
    private LocalDate invoicedate;
}
Run Code Online (Sandbox Code Playgroud)

ConstraintValidator为这种情况实施了自己的程序。但是以某种方式,Spring Boot不会选择它进行验证。

@Component
public class LocalDateFutureValidator implements ConstraintValidator<Future, LocalDate> {

    @Override
    public void initialize(Future future) {
    }

    @Override
    public boolean isValid(LocalDate localDate, ConstraintValidatorContext constraintValidatorContext) {
        LocalDate today = LocalDate.now();
        return localDate.isEqual(today) || localDate.isAfter(today);
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以简单地编写自己的注释并在其中指定验证器,但是不是更干净,更简单的方法吗?

validation spring-mvc bean-validation spring-boot

5
推荐指数
2
解决办法
3497
查看次数