Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / EBean каскадно удаление / 4 сообщений из 4, страница 1 из 1
16.02.2014, 20:39
    #38562460
maksaimer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EBean каскадно удаление
Совсем недавно принялся изучать Play Framework. Решил что стоит попробовать вместо привычного JPA что-то новенькое. Выбор был не особо велик - EBean.
Допустим ситуацию.
Есть альбома, а в нем фотографии:

Альбом:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class Album extends Model {
  @Id
  Long id;

  @ManyToOne
  Photo cover;

  @OneToMany(cascade = CascadeType.ALL)
  List<Photo> photos;
}



Альбом в себе имеет в себе фотографии и одна из фотографий является обложкой.

Фото:
Код: java
1.
2.
3.
4.
5.
6.
7.
class Photo extends Model {
  @Id
  Long id;

  @ManyToOne
  Album album;
}



Собственно ситуация:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Photo photo1 = new Photo();
Photo photo2 = new Photo();

Album album = new Album();
album.photos.add(photo1);
album.photos.add(photo2);
album.save();

album.cover = photo1;
album.update();

album.delete();



На последней строчке будет ексепшн, собственно ситуация понятна, при каскадном удалении удаляются все фотографии в альбоме, а одна из них ссылается на альбом - cover (обложка), то есть присутствует некоторая цикличность. Что нужно сделать, чтобы удаление прошло успешно?
...
Рейтинг: 0 / 0
16.02.2014, 21:36
    #38562482
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EBean каскадно удаление
maksaimer,
Убрать дважды фото в альбоме и добавить в фотографиях флаг что альбомная.
...
Рейтинг: 0 / 0
16.02.2014, 21:41
    #38562484
maksaimer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EBean каскадно удаление
Petro123, некрасивое решение, как мне кажется.

Так мне надо было просто обратиться к cover, а так придется делать еще один запрос чтобы найти обложку фотографии.
...
Рейтинг: 0 / 0
16.02.2014, 22:40
    #38562507
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EBean каскадно удаление
maksaimer,
а если надо Выбрать для обложи главное фото? Тогда будет легко не перезагружая фото сменить только галку.
maksaimerи одна из фотографий является обложкой.
сам ведь написал))
Модель нельзя подстраивать под лень
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / EBean каскадно удаление / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]