Я делаю первые шаги с помощью Play! Framework (v2.1-rc1) с Java, и теперь я столкнулся с первой проблемой с ebean. У меня есть объект навигации с отношением ManyToOne к себе. Как только я пытаюсь получить доступ поле заголовка в parentNavigation, я получаю следующее сообщение об ошибке:EntityNotFoundException: Bean удален - ленивая загрузка не удалась
[EntityNotFoundException: Bean has been deleted - lazy loading failed]
Как выяснилось, ошибка появляется только если родитель навигации не существует в базе данных. Должен ли я получить пустой объект навигации в этом случае?
Навигация Entity:
package models;
import javax.persistence.*;
import play.db.ebean.*;
@Entity
public class Navigation extends Model {
@Id
public Long id;
@Column(name="c_title")
public String title;
@Column(name="id_parent")
public Long parentId;
@ManyToOne()
@JoinColumn(name="id_parent")
public Navigation parentNavigation;
public static Finder<Long,Navigation> find = new Finder<Long,Navigation>(
Long.class, Navigation.class
);
}
Мои действия в контроллере:
public static Result index() {
Navigation navigation = Navigation.find.byId(2L); // this one doesn't work, but the entry with ID 30 does
return ok(views.html.app.index.render(navigation));
}
И мое мнение:
@(navigation: Navigation)
@main("Welcome to Play 2.0") {
This navigation: @navigation.title <br>
Parent: @navigation.parentNavigation.title
}
Показать, как вы пытаетесь получить объект и получить доступ к родительскому – biesior
Я обновил свой вопрос. – android