LINUX.ORG.RU

Как в hibernate сделать Map<Key, List<Value>>?

 ,


0

2

Без посредников и переплаты. Гугл говорит, что никак. Но может есть какой-то метод, который будет дёргаться при добавлении сущности в обычный List и я смогу распихать всё эти сущности по своему Map'у, как мне надо?

Не совсем понял, что ты хочешь сделать. Если ты хочешь запустить какой-то код после того, как Hibernate материализовал объект сущности, почитай главу «Entity listeners and Callback methods», это делается тривиально.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

У меня есть сущность, на ней список дочерних сущностей. Мне их надо распихать в map со списками по какому-то их признаку.

Entity listeners and Callback methods

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

@Entity
public class Parent {
...
@OneToMany
private List<ChldType> child;

private HashMap<String, List<ChldType> hash = new HashMap<String, List<ChldType>();

@OnAdd(field = "child")
private void pushChild(ChldType arg0) {
     List<ChldType> lst = null;
     String sortField = arg0.getHisChild().getSortField()
     lst = hash.get(sortField);
     if (lst == null) {
          lst = new ArrayList<ChldType>();
          hash.put(sortField, lst);
     };
     lst.add(arg0);
}
}
В идеале, конечно, надо чтобы это умел делать hibernate аннотациями, но на это надеяться не приходится. А нужно всё это, чтобы не перебирать child.

crutch_master ★★★★★
() автор топика
Последнее исправление: crutch_master (всего исправлений: 4)
Ответ на: комментарий от crutch_master

Мне нужен коллбек, после того/до того, как дочернюю сущность запихнут в список

Кто запихнёт в список? Hibernate или пользовательский код?

А нужно всё это, чтобы не перебирать child.

В чём проблема перебирать child в @PostLoad?

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

В чём проблема перебирать child в @PostLoad?

Можно, но хз. На самом деле хреновая идея, наверное. Попробую запихать, но, думаю, ничего не получу с этого кроме проблем.

crutch_master ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.