Может ли Hibernate автоматически управлять порядком дочерних коллекций? - PullRequest
1 голос
/ 15 сентября 2011

Учитывая класс Parent, который имеет много Children, может ли Hibernate автоматически управлять порядком указанных детей?Из чтения документации и поиска кажется, что аннотация @OrderColumn может включить это, но я не нашел примеров того, как это сделать.Самое близкое, что я нашел, это аннотация JPA 2.0 @OrderColumn в Hibernate 3.5 , которая выглядит немного обескураживающей, учитывая, что она выглядит точно так же, как я хочу.

Вотпримерный набросок того, что я пытаюсь сделать, за исключением аннотаций, так как я не уверен, какими они будут:

class Parent {
  // I probably need some sort of @OrderColumn annotation here, right?
  private List<Child> children = new ArrayList<Child>;
}

class Child {
  private Parent parent;
  private int order;
}

class SomeBusinessLogic {
  public static void createFamily() {
    Parent dad = new Parent("Tom");
    List<Children> children = dad.getChildren();
    children.add(new Child("Alice");
    children.add(new Child("Bob");
    children.add(new Child("Carl");
    session.save(dad);
  }

  public static void addChild(Parent parent) {  // assuming Tom is passed in
    List<Children> children = parent.getChildren();
    children.add(1, new Child("Zelda");
    session.save(parent);
    // now, the order should be: Alice, Zelda, Bob, Carl
  }
}

Если кто-то может дать мне достаточно деталей, чтобы этот пример игрушки работал (илискажите мне, что это не сработает), я был бы очень признателен.

1 Ответ

1 голос
/ 15 сентября 2011

Чтобы сохранить дочерние элементы в их порядке, вы должны сопоставить их с аннотацией @IndexedColumn, которая создаст индексированный столбец в вашей таблице дочерних объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...