Java 如何翻转子句';在';自联接多对多的内部联接
我有一个与她有关的实体Java 如何翻转子句';在';自联接多对多的内部联接,java,sql,hibernate,jpa,Java,Sql,Hibernate,Jpa,我有一个与她有关的实体 @OrderBy("ordenacao ASC") @JoinTable(name = "funcionarios_has_funcionarios", joinColumns = @JoinColumn(name = "FUNCIONARIOS_ID"), inverseJoinColumns = @JoinColumn(name = "FUNCIONARIOS_ID1")) @ManyToMany(cascade = { PERSIST, MERGE }) publi
@OrderBy("ordenacao ASC")
@JoinTable(name = "funcionarios_has_funcionarios", joinColumns = @JoinColumn(name = "FUNCIONARIOS_ID"), inverseJoinColumns = @JoinColumn(name = "FUNCIONARIOS_ID1"))
@ManyToMany(cascade = { PERSIST, MERGE })
public List<Funcionarios> getFuncionariosId1s() {
return funcionariosId1s;
}
她以那种方式在java中表演
`select
funcionari1_.ID as col_0_0_,
funcionari1_.NOME as col_1_0_,
coalesce(sum(fornecimen0_.LITROS*fornecimen0_.VALOR),
0) as col_2_0_,
(select
coalesce(sum(vales4_.VALOR),
0)
from
vales vales4_,
funcionarios funcionari5_
where
vales4_.FUNCIONARIOS_ID=funcionari5_.ID
and vales4_.FUNCIONARIOS_ID=funcionari1_.ID
and vales4_.STATUS='PENDENTE') as col_3_0_,
(select
coalesce(sum(convenio6_.VALOR),
0)
from
convenio convenio6_,
funcionarios funcionari7_
where
convenio6_.FUNCIONARIOS_ID=funcionari7_.ID
and convenio6_.FUNCIONARIOS_ID=funcionari1_.ID
and convenio6_.STATUSCONVENIADO='PENDENTE') as col_4_0_
from
fornecimentoleiteprodutor fornecimen0_
inner join
funcionarios funcionari1_
on fornecimen0_.PRODUTOR_ID=funcionari1_.ID
inner join
funcionarios_has_funcionarios funcionari2_
on funcionari1_.ID=funcionari2_.FUNCIONARIOS_ID
inner join
funcionarios funcionari3_
on funcionari2_.FUNCIONARIOS_ID1=funcionari3_.ID
where
funcionari3_.ID=2
group by
funcionari1_.ID`
但是我需要第二个内部连接上的子句是不同的,这样
inner join
funcionarios_has_funcionarios funcionari2_
on funcionari1_.ID=funcionari2_.FUNCIONARIOS_ID1
我需要“on”与连接表的第二列相关联
如果要控制内部联接,请给出自己的ON子句,如何解决此问题
目前Hibernate正在根据自己的假设生成自己的ON子句。任何JPA实现都会根据注释/XML定义的列(以及应该连接的列)添加ON子句。您无法摆脱它(除了以不同的方式定义关系字段)。您唯一能做的就是使用JPQL添加额外的ON子句。我只想更改“ON”中比较的“id”
inner join
funcionarios_has_funcionarios funcionari2_
on funcionari1_.ID=funcionari2_.FUNCIONARIOS_ID1