SPRING-SOURCE.RU

POJO взаимосвязи

Изображение показывает взаимосвязи в виде UML диаграммы.

Spring POJO взаимосвязи

Эта схема может быть преобразована в код. Например, PixUser класс отражает, что PixUser может иметь много альбомов и много комментариев, как показано в следующем отрывке кода:

                        
public class PixUser implements Serializable {
...
private List<Album> albums = new ArrayList<Album>();
private List<Comment> comments = new ArrayList<Comment>();
...
}
		

Добавляем POJO операции для поддержки взаимосвязей

В секции Давайте попробуем, показано, что операции добавляются, как методы в соответствующие POJO.

Для поддержки связей между POJO, первым делом необходимо понять действия, которые вы должны выполнить. Для PIX, поддержание взаимосвязей требует следующего:

Для поддержки предыдущих операций, вы должны создать в POJO набор методов. Вот эти методы:

Давайте попробуем

1. Создайте addNewPicture() метод в album POJO для поддержки добавления фото к альбому.

                        
public void addNewPicture(Picture picture) {
        picture.setAlbum(this);
        pictures.add(picture);
    }
		

2. Создайте addAlbum() метод в PixUser для поддержки связи альбома с PixUser.

                        
public void addAlbum(Album albumToAdd) {
    albumToAdd.setUser(this);
    getAlbums().add(albumToAdd);
}
		

3. addComment() в Picture

                        
public void addComment(Comment comment) {
    comments.add(comment);
}
		

4. addComment() в PixUser

                        
public void addComment(Comment comment) {
    comments.add(comment);
}
		

Как это работает

В первом случае, addNewPicture() метод в Album POJO создает двойную ссылку между Album POJO и Picture POJO.

                        
picture.setAlbum(this);
pictures.add(picture);
		

Первое объявление присваивает картинку к свойству альбома, второе объявление добавляет данную картинку в член List<Picture> свойства pictures. Это позволяет Picture POJO обращаться к Album POJO через Album свойство и Album POJO обращаться к картинке как к одному из членов списка pictures. Точно также, addAlbum() метод в PixUser POJO, явлется двойной ссылкой между PixUser и Album POJO's.

                        
albumToAdd.setUser(this);
getAlbums().add(albumToAdd);
		

Первое объявление добавляет ссылку от Album POJO к PixUser POJO, второе объявление добавляет Album POJO в список альбомов, который является членом PixUser POJO.

В третьем случае, addComment() метод в Picture POJO добавляет ссылку Comment POJO на множество комментариев в Picture POJO.

Четвертый случай похож на третий, addComment() метод в PixUser POJO добавляет ссылку Comment POJO на список комментариев содержащихся в PixUser POJO.

Пожалуйста, сами посмотрите на другие взяимосвязи в исходном коде.