Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring data n+1 tree problem / 4 сообщений из 4, страница 1 из 1
12.07.2014, 08:33
    #38694859
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring data n+1 tree problem
Добрый день. Здался таким вопросом : а есть ли решение для spring data при работе с деревом? По теме нашел только это

http://www.tikalk.com/java/load-a-tree-with-jpa-and-hibernate

Но я так и не понял как создать запрос который сможет за раз вытащить все дерево?
Экак правильно удалить дерево?


Как правильно создавать новое дерево?


Вот есть у нас код создания
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Node root = new Node();

Fori 10{
Node n1 = new Node();
root.addNode(n1);

For i 10{
Node n2 = new Node();
n1.addNode(n2);
}
}



Как его положить в базу ? Вытащить и удалить?


В jparepository есть команды для работы с итераторами но тут они разве приминимы?

Когда мы будем делать save(root) это повлечет за собой каскад insert ов и updateтов

А вот когда мы будем делать findOne(root) все зависит от стратегии если будет лайзи у коллекции то выскочит ошибка. В другом случае получаем каскад селектов


Вопрос есть ли решение ? Для tree ?
...
Рейтинг: 0 / 0
12.07.2014, 10:11
    #38694870
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring data n+1 tree problem
Опять всё в кучу намешано.
Spring Data всего лишь обертка для JPA. JPA это ORM для реляционной базы данных. Способов хранения дерева в реляционной БД несколько. Поэтому начните с начала. Изучите как дерево можно представить в RDB. Выберите какой из вариантов вам больше подходит. И потом уже решайте как с этим вариантом работать в JPA.
...
Рейтинг: 0 / 0
12.07.2014, 13:43
    #38694933
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring data n+1 tree problem
Blazkowicz,

Я по модели статьи рассматриваются проблему.

Хотя вы правы есть нестедсет и подход через него. Но хочется понять решение описанное в статье
...
Рейтинг: 0 / 0
22.07.2014, 09:33
    #38702528
Atum1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring data n+1 tree problem
Все просто :

кому интересно код такой :



Код: java
1.
2.
3.
4.
5.
6.
7.
  
  @Override
    public Property findPropertyWithTheirPropertes(Long rootId) {
        em.createNamedQuery(Property.findAllPropertes).getResultList();
        Property root = em.find(Property.class, rootId); 
        return root;
    }




Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
@Entity
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@NamedQueries({ 
    @NamedQuery(name = Property.findAllPropertes, query = "SELECT p FROM Property p LEFT JOIN fetch p.properties")
 })

public class Property implements Serializable {

    private static final long serialVersionUID = 1L;
    public static final String findAllPropertes = "findAllPropertes";
    
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO)
    @XmlTransient
    private Long id;
    
    @XmlAttribute
    private String name;

    
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
    @JoinColumn(name = "parent_id")
    @OrderColumn(name = "properties_order")
    @XmlElementRef
    private List<Property> properties = new ArrayList<>();

    public Property() {
    }
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring data n+1 tree problem / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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