e aí galera… Tenho a seguinte duvida:
Tenho duas unidades de persistencia, uma com mysql, que é onde vai ficar o banco do meu software, e outra unidade de persistencia com o oracle, onde eu vou buscar apenas o nome dos meus usuarios. Não consigo gravar. Dá a seguinte mensagem:
O hibernate também criou uma tabela v_colab no mysql, mas na verdade eu tinha mapeado isso pra o Oracle.
GRAVE: Cannot add or update a child row: a foreign key constraint fails (reserva
.agendamento
, CONSTRAINT FK2B9A22453DDC1116
FOREIGN KEY (usuario_COLAB_ID
) REFERENCES v_colab
(COLAB_ID
))
A mensagem eu entendi que ele dá, porque eu não tenho nenhum usuario no meu banco, no mysql na tabela v_colab, que é onde ele tá buscando, e que deveria buscar no oracle.
Tenho que dar um jeito de mapear a chave estrangeira de agendamento para o Oracle.
O programa é um software de reserva de equipamento. Tenho três classes: Usuario, agendamento e equipamento. A classe Usuario é mapeado no oracle, e é só leitura. O resto fica no mysql.
Alguém já mapeou duas entidades em bancos diferentes ?
@Entity
@Table(name = "equipamento")
public class Equipamento implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="equipamentoId")
private Integer equipamentoId;
@Column(name="tipoEquipamento")
private String tipoEquipamento;
@Column(name="nome")
private String nome;
@Column(name="descricao")
private String descricao;
@OneToOne(mappedBy="equipamento", cascade=CascadeType.ALL)
private Agendamento agendamento;
@Entity
@Table(name="agendamento")
public class Agendamento implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="agendamentoId")
private Integer agendamentoId;
@Column(name="retirada")
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date retirada;
@Column(name="devolucao")
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date devolucao;
@OneToOne
@JoinColumn(referencedColumnName="equipamentoId")
private Equipamento equipamento;
@ManyToOne
@JoinColumn(referencedColumnName="colab_id", nullable=true)
private Usuario usuario;
@Entity
@Table(name = "V_COLAB")
public class Usuario implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="COLAB_ID")
private Integer usuarioId;
@Column(name="CD_EMPR")
private Integer Empresa;
@Column(name="CD_COLAB")
private Integer matricula;
@Column(name="NOME_COLAB")
private String nome;
@OneToMany(mappedBy="usuario")
private List<Agendamento> agendamento;