Нужен ArrayList для хранения объектов в порядке их сохранения в базе данных.Использование @OrderColumn для достижения этой цели, но по какой-то причине не удается отсортировать данные по порядку.
Следующий тест сохраняет 2 объекта и пытается получить объекты в порядке убывания (см. Последнюю строку), что не удалось.
Watching.class
@ManyToMany(cascade = CascadeType.ALL,
targetEntity = Ticker.class,
fetch = FetchType.LAZY)
@JoinTable(name="watching_ticker",
joinColumns = @JoinColumn(name="watching_id"),
inverseJoinColumns= @JoinColumn(name="ticker_id"))
@OrderBy("id desc")
private List<Ticker> tickers;
...
Ticker.class
@JsonIgnore
@ManyToMany
@JoinTable(name ="watching_ticker",
joinColumns = @JoinColumn(name ="ticker_id"),
inverseJoinColumns = @JoinColumn(name = "watching_id"))
protected Set<Watching> watchings;
..
Tester
Account account;
AccountService accountService;
Ticker ticker;
Ticker tickerTwo;
@Before
public void setUp() throws Exception {
account = ...
ticker = ...;
tickerTwo = ...;
....
}
@Test
public void testSave() {
Watching watching = account.getWatching();
watching.getTickers().add(ticker);
watching.getTickers().add(tickerTwo);
Watching saved = accountService.save(account).getWatching();
Ticker one = saved.getTickers().get(0);
int size = saved.getTickers().size();
assertEquals(2, size);
Assert.assertEquals(one, tickerTwo); <-- fails
}