У меня есть сущность JPA с именем ParentAccount
, которая расширяет абстрактную сущность Account
(см. Наследование JPA). Я поместил ограничения проверки JSR-303 в сущность Account.
Теперь у меня есть следующий класс и шаблоны Tapestry, и проверка JSR-303 не работает:
Класс гобелена:
public class Inscription {
@Property
//this is not validated...
private ParentAccount parentAccount;
@Property
@Validate("required")
private String accountPasswordConfirmation;
@InjectComponent
private Form registrationForm;
@OnEvent(EventConstants.PREPARE)
void prepareAccount(){
parentAccount = new ParentAccount();
}
@OnEvent(value= EventConstants.VALIDATE)
void validateRegistrationForm() {
if(registrationForm.isValid()) {
if(accountPasswordConfirmation.equals(parentAccount.getAccountPassword())) {
System.out.println("ok for insert");
}
}
}
}
Гобеленовая страница:
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">
<head>
<title>Hello World Page</title>
</head>
<body>
<form t:type="form" t:id="registrationForm" validate="this">
<t:errors/>
<div>
<label t:type="label" for="accountEmailAddress"/>
<input t:type="textfield" t:id="accountEmailAddress" value="parentAccount.accountEmailAddress"/>
</div>
<div>
<label t:type="label" for="accountFirstName"/>
<input t:type="textfield" t:id="accountFirstName" value="parentAccount.accountFirstName"/>
</div>
<div>
<label t:type="label" for="accountLastName"/>
<input t:type="textfield" t:id="accountLastName" value="parentAccount.accountLastName"/>
</div>
<div>
<label t:type="label" for="accountPassword"/>
<input t:type="textfield" t:id="accountPassword" value="parentAccount.accountPassword"/>
</div>
<div>
<label t:type="label" for="accountPasswordConfirmation"/>
<input t:type="textfield" t:id="accountPasswordConfirmation" value="accountPasswordConfirmation"/>
</div>
<div><input type="submit" value="ok"/></div>
</form>
</body>
</html>
К сожалению, несмотря на то, что я аннотировал сущность аннотациями @NotNull
, эти ограничения JSR-303 игнорируются.
Может кто-нибудь помочь, пожалуйста?
С уважением,