Если каждый Заказ уникален и клиент не может иметь один и тот же Заказ дважды в одной и той же коллекции, используйте Set, в противном случае используйте List
Прежде всего, помните, что вы ДОЛЖНЫ переопределить функции equals () и hashCode ()для каждого класса:
При использовании Списка вы можете отобразить его по-разному:
- Упорядоченные списки, где порядок не материализован в базе данных
- Индексированные спискигде заказ материализован в базе данных
Упорядоченный список реализуется следующим образом:
@OneToMany(mappedBy="customer")
@OrderBy("number")
public List<Order> getOrders() { return orders; }
Индексированный список отображается следующим образом:
@OneToMany(mappedBy="customer")
@OrderColumn(name="orders_index")
public List<Order> getOrders() { return orders; }
Чтобы сохранить значение индекса в выделенном столбце, используйте аннотацию @javax.persistence.OrderColumn
для вашей собственности.Эта аннотация описывает имя столбца и атрибуты столбца, в которых хранится значение индекса.Этот столбец размещен в таблице, содержащей внешний ключ ассоциации.Если имя столбца не указано, по умолчанию используется имя свойства ссылки, за которым следует подчеркивание, за которым следует ORDER (в следующем примере это будет orders_ORDER).
An, если вы хотите использовать Set<Order>
это очень просто:
@OneToMany(mappedBy="customer")
public Set<Order> getOrders() { return orders; }
Надеюсь, это поможет.