我使用的是Hibernate 4.2,应用程序运行正常。
更新到4.3后我得到了hibernate错误org.hibernate.MappingException:无法找到具有逻辑名称的列:TB_AGENCIA中的cd_banco。
@Table(name = "TB_AGENCIA")
public class Agencia {
private Banco banco;
private String codigoAgencia;
@Id
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "cd_banco", referencedColumnName = "cd_banco")
public Banco getBanco(){
return banco;
}
@Id
@Column(name = "cd_agencia")
public String getCodigoAgencia(){
return codigoAgencia;
}
}
数据库结构是:
|-------------------|
| TB_AGENCIA |
|-------------------|
| cd_banco PK, FK |
| cd_agencia PK |
| ... |
|-------------------|
|-------------------|
| TB_BANCO |
|-------------------|
| cd_banco PK |
| ... |
|-------------------|
我在Banco课程中添加了双向关系,但没有工作
public class Banco{
private String codigo;
private List<Agencia> agencias;
@Id
@Column(name = "cd_banco")
public String getCodigo(){
return codigo;
}
@OneToMany(mappedBy="banco")
public List<Agencia> getAgencias() {
return agencias;
}
}