class event {
@OrderColumn
@ManyToMany(fetch = FetchType.LAZY, cascade = [CascadeType.MERGE])
@JoinTable(inverseJoinColumns = [JoinColumn(name = "video_id")])
var videos: MutableList<Video> = ArrayList()
tables event, video and event_video linking table with event_id, video_id and videos_ORDER columns. It works nicely.
However, I read that Hibernate 6 doesn’t support ManyToMany + OrderColumn annotations at the same time and in fact, I couldn’t make it work.
So is there any workaround I can use so I don’t have to change the code or our database model? Or is this support coming in future versions of hibernate?
Where did you read that Hibernate 6 doesn’t support that? We have tests in our testsuite that do exactly that. What doesn’t work is the use of @OrderColumn on the inverse/non-owned side i.e. when you use @ManyToMany(mappedBy = "...")
Anyway, if I keep @OrderColumn or @OrderColumn(name = "videos_ORDER") there, Im getting this during initialization:
caused by: java.lang.NullPointerException: Cannot invoke "org.hibernate.annotations.common.reflection.XClass.getName()" because the return value of "org.hibernate.annotations.common.reflection.XProperty.getMapKey()" is null at org.hibernate.cfg.ClassPropertyHolder$1.doSecondPass(ClassPropertyHolder.java:290) ~[hibernate-core-6.1.7.Final.jar:6.1.7.Final]
I tried both set(AvailableSettings.DEFAULT_LIST_SEMANTICS, "BAG") and "LIST"
Runtime data if needed (its for images, but its exactly the same situation):