我正在使用JSF开发一个项目,我正在尝试在下面保留此实体,但是我收到了一条错误消息。在我创建关系之前,Conta类是正确持久的,但是对于Transacao的Many To One,我不能。
这是Transacao班:
@Id
@GeneratedValue
private long id;
private Conta contaOrigem;
private String agenciaDestino;
private String contaDestino;
private String cpfDestino;
...
这是Conta类:
public class Conta {
@EmbeddedId
private DadosConta contaUsuario = new DadosConta();
@NotEmpty(message="Senha não pode estar em branco")
private String senha;
@NotEmpty(message="Selecione uma opção")
private String tipoConta;
private double saldo;
private Usuario usuario = new Usuario();
@OneToMany(mappedBy="contaOrigem", fetch = FetchType.LAZY)
private List<Transacao> transacoes = new ArrayList<>();
...
DadosConta(嵌入式ID类):
@Embeddable
public class DadosConta implements Serializable {
private static final long serialVersionUID = -7021727065659352073L;
@NotEmpty
private String agencia;
@NotEmpty
private String conta;
...
最后,这是错误:
Foreign key (FK_8k5jlptboiq6xm4oopg9jnh2l:Transacao [contaOrigem])) must have same number of columns as the referenced primary key (conta [agencia,conta])
我知道错误消息是“显式的”,但我不知道如何与EmbeddedId保持这种多对一的关系,是否有解决方法?
非常感谢。
答案 0 :(得分:0)
在Transacao
课程中尝试此操作以完成双向连接。
@ManyToOne
@JoinColumns({@JoinColumn(name = "agencia"), @JoinColumn(name = "conta")})
private Conta contaOrigem;