我在Ebean中使用Play Framework 2。 我有一個班級說人。人有2個接口,護照和DriverLicence。 人有2個變量,passportNum和driverLicenceNum。 Passport和DriverLicence擁有自己的CRUD,由DriverLicenceController和PassportController控制。當我嘗試從DriverLicenceController更新driverLicenceNum時,它會引發ValidationException。我發現問題是由@Column(nullable = false)引起的。我試圖從更新中打印出passportNum值,並發現在controller.update中,passportNum有一個值。但在Person.update中,它是空的。請幫忙。下面是我的代碼:播放框架Ebean有奇怪的行爲,更新時爲null
public class Person extends Model {
public interface Passport{}
public interface DriverLicence{}
@Id
public Long id;
@Required(groups = {Passport.class})
@Column(nullable = false)
public Long passportNum;
@Required(groups = {DriverLicence.class})
@Column(nullable = false)
public Long driverLicenceNum;
@Override
public void update(Object o) {
this.updatedOn = new DateTime();
Logger.debug("Passport: "+this.passportNum); // NULL
super.update(o);
}
}
public class DriverLicenceController extends Controller {
public static Result update(long personId) {
Person person = Person.find.byId(personId);
if(visit == null) {
flash("error", "does not exist.");
return DriverLicenceController.home();
}
Form<Person> personForm = form(Person.class, Person.DriverLicence.class).fill(person).bindFromRequest();
if(personForm.hasErrors()) {
flash("error", "DriverLicence has not been updated");
return badRequest();
}
Person personObj = personForm.get();
Logger.info("Password num: "+person.passPortNum); //display the number
personObj.update(personId);
return ok();
}
}