Hibernate @ManyToMany joinTable - OrderBy using the join table field

There are 3 tables:

TABLE_A
ID_A
Field1
fieldN

TABLE_B
ID_B
Field1
fieldN

TABLE_A_B
ID_A
ID_B
orderField

public class A(){
    @ManyToMany
    @JoinTable(name="TABLE_A_B", joinColumns={@JoinColumn(name="ID_A")}, inverseJoinColumns={@JoinColumn(name="ID_B")})
    @OrderBy(value="orderField")
    private List<TABLE_B> BList;
}

But it does not work, instead I get a runtime error:

Caused by: org.postgresql.util.PSQLException: ERROR: column B1_.orderField doesn't exist Position: 1437

Sleep mode searches the TABLE_B field. Is it possible to use "OrderBy" in many ways by using the join table field? Or any other way to get an order based on the same field?

+4
source share
1 answer

, , . , list, , , , , , , @OrderBy(value="orderField").

@OrderBy :

:

  • ,
  • ,

, @javax.persistence.OrderBy .

, (hibernate.show_sql=true), , .

;

select ... from ... inner join ... where users0_.event_id=? order by user1_.fullname

, , @OrderBy.

UPDATE:

@OrderBy sql, :

@OrderBy(value="orderField")
private List<TABLE_B> BList;

orderField - TABLE_B, @OrderBy(value="lower(fullname) desc")

TABLE_A_B, , java, @OrderColumn(name="orderField")

;

@ManyToMany
@JoinTable(name="TABLE_A_B", joinColumns={@JoinColumn(name="ID_A")}, inverseJoinColumns={@JoinColumn(name="ID_B")})
@OrderColumn(name="orderField")
private List<TABLE_B> BList;
+8

All Articles