拥有,
class RadicadoOficio {
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="cor_radicado_localidad", joinColumns=@JoinColumn(name="ano_radicado"), @JoinColumn(name="num_radicado")}, inverseJoinColumns=@JoinColumn(name="interno_localidad")})
private List<Localidad> localidades;
}
class Localidad {// does not reference RadicadoOficio. unidirectional relationship }
asume ano_radicado 是一个 int (ano 在某种程度上意味着年份),而 num 是一个字符串(实际上是一个可以包含字母的“数字”)
生成 sql: delete from cor_radicado_localidad where ano_radicado=2012 and num_radicado=AX33
这是好事。
但是,如果您在 RadicadoOficio 中更改 joinColumns 的顺序,即:
joinColumns=@JoinColumn(name="num_radicado"), @JoinColumn(name="ano_radicado")},
你得到:从 cor_radicado_localidad 中删除,其中 ano_radicado=AX33 和 num_radicado=2012
那很糟。
据我所知,映射中连接列的顺序应该无关紧要,并且在两种情况下生成的 SQL 应该是相同的。我错过了什么?tnx