Grails 3.3:强制执行嵌入式约束吗?无障碍?

时间:2018-08-29 15:01:45

标签: grails grails-3.3

我正在使用Grails 3.3.6中新的“ GrailsDomainClass API”。可以通过在域类上调用 constrainedProperties 来访问约束。漂亮。

但是,尝试使用嵌入式域会产生 groovy.lang.MissingPropertyException 。 Grails可以毫无问题地处理嵌入式域的源代码,约束和所有内容,但是我很难以编程方式找到它们。线索表示赞赏。

编辑:示例方法:

private Constrained resolveConstraints(DomainClassMeta currentBeanMeta,
                                       DomainPropertyMeta currentPropertyMeta)
{
  String propertyName = currentPropertyMeta.name
  def constrained = null
  try {
    constrained = currentBeanMeta.clazz.constrainedProperties[propertyName]
  } catch (groovy.lang.MissingPropertyException exc) {
    // Ignore
  }
  return constrained
}

在此方法中,currentBeanMeta.clazz检索域java.lang.Class。我们在其上调用constrainedProperties以获取按属性名称索引的地图。 (这在Grails用户指南中明确提到。)当前结果是实现org.grails.validation.ConstrainedDelegate的{​​{1}}。但是,如果嵌入了域,则会因为缺少Constrained属性而引发异常。值得一提的是,嵌入式域通过constrainedProperties引入了映射上下文。

0 个答案:

没有答案