我在用着
- hibernate-core-4.0.1.Final
- hibernate-validator-4.2.0.Final
我有一个延迟加载实体
@NotNull
@OneToOne(fetch = FetchType.LAZY,optional = false,cascade = CascadeType.PERSIST)
@JoinColumn(name="library_id")
private Library library;
public Library getLibray() {
return library;
}
和一个默认验证器
private final ValidatorFactory factory = Validation
.buildDefaultValidatorFactory();
private final Validator val = factory.getValidator();
当我尝试验证带有注释的未附加和附加实体时@NotNull, @Size
等等。
一切正常。但是当我通过延迟加载加载实体并尝试验证它时。
验证器每次都会失败。这似乎是因为我得到了一个 Hibernate 代理对象。
我可以通过取消代理来轻松解决这个“问题”。(但这在我的情况下不太有利)
这是预期的行为吗?我在 OpenJPA、EclipseLink 中是否会得到相同的行为......?
祝大家周日愉快;)我希望我确实把问题说清楚了?
可以通过注释方法而不是字段来解决问题。
这在中进一步讨论HVAL-13 https://hibernate.atlassian.net/browse/HVAL-13问题并且也在HV-535 https://hibernate.atlassian.net/browse/HV-535。如果替换注释不可行,错误报告中建议的解决方案是使用 HibernateProxyValidator。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)