JDL模式在Java @Pattern中不正确

时间:2018-08-01 10:27:06

标签: jhipster

当我在JDL中应用模式时,生成的实体类具有@Pattern注释,但是该注释的值不是在JDL中应用的确切模式。

例如,如果我已将模式定义为
pattern('/[^\\s]+.*[^\\s]+/')

并在Java中 它反映为
@Pattern(regexp = "[^\\\\s]+.*[^\\\\s]+")

如果您在java类中注意到,则有4(斜杠),实际上应该仅为2。由于此功能失败。

1 个答案:

答案 0 :(得分:0)

在我看来,您正试图在您的模式中使用正则表达式控制字符,不需要在您的 JDL 中加倍:参见 https://www.jhipster.tech/jdl/entities-fields,尤其是下面的部分“正则表达式”,它说:“/.../ 模式在两个斜杠内声明...\反斜杠不需要转义”

所以它的行为是正确的。由于您的 JDL 中有双反斜线,Java 正确地将其解释为四重反斜线。根据文档,您的解决方案只是在您的 JDL 中使用单个 backslant。