2013-04-14 4 views
1

Я пытаюсь сделать что-то вроде этого:Как добиться упорядочивания коллекции простых объектов?

@ElementCollection(fetch = FetchType.EAGER) 
@CollectionTable(name = "UserStrings") 
@Column(name = "string") 
@OrderBy 
private List<String> strings = new LinkedList<>(); 

Это приводит к таблице:

UserStrings 
----------- 
User_object_id bigint(20) NOT NULL, 
string DEFAULT NULL 

это хорошо, но я получаю коллекцию как org.hibernate.collection.internal.PersistentBag которая является неупорядоченным, и каждый время я повторяю, я получаю другой порядок. Я пробовал использовать @OrderBy, но он не работает на сбор строк, я полагаю, это было бы, если бы это была коллекция сущностей.

Я абсолютно уверен, что хочу, чтобы он оставался набором строк, нет смысла создавать для них новую сущность.

Я бы хотел, чтобы строки отсортированы по их значению, поэтому OrderColumn также (я думаю) не для этого, потому что он создает дополнительный столбец для упорядочения.

Кто-нибудь знает, что я могу сделать, чтобы получить их в упорядоченной коллекции, например ArrayList или LinkedList?

ответ

1

жаль быть носителем плохих новостей, но это, кажется, known hibernate issue, еще не решенное.

+0

не хорошо ... "Создано 02/Dec/11". Спасибо за информацию. –

+0

хорошие новости, это только что было разрешено - [link] (https://hibernate.atlassian.net/browse/HHH-6875). Я проверю его, как только он будет выпущен. –

0

This может быть полезно.

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER) 
@JoinColumn(name="CUST_ID") 
@Sort(type = SortType.COMPARATOR, comparator = TicketComparator.class) 
public SortedSet<Ticket> getTickets() { 
    return tickets; 
} 
+0

как это связано? OP сказал: «Я абсолютно уверен, что хочу, чтобы он оставался набором строк, нет смысла создавать для них новую сущность» – radai

Смежные вопросы