У меня простой вопрос о доступе к переменным-членам объекта модели.
У меня есть следующие объекты модели:
@Entity
public class Person extends Model{
@Id
public Long id;
public String name;
}
@Entity
public class Account extends Model{
@Id
public String email;
public String password;
@OneToOne
public Person person;
}
Пока все хорошо, любой заданный person
может иметь один account
. Объект Account
скопирован из примера zentask. После аутентификации я перенаправляюсь на индексную страницу, которая отображает настоящее имя пользователя, как указано в переменной-члене Person.name
. Объект Account
вставляется на страницу так же, как и в примере zentasks, вот так:
Account.find.byId(Controller.request().username());
Теперь в шаблоне происходят следующие странные вещи, которые я не понимаю:
@account.person.name
приводит к вставке значения Null
в шаблон при вызове:
@account.person.getName() or @account.person.getName
результаты, как и ожидалось, с правильным именем, вставленным из объекта человека.
@account.person
показывает .toString()
объекта человека, также правильно показывая имя.
Итак, подведем итог: что не так с кодом выше? Почему я могу вызвать значение account.person без проблем, но когда я вызываю account.person.name, это больше не работает
Заранее спасибо!
Ричард