Tenho duas tabelas A e B, onde a A sempre existe e a B não necessariamente. A chave da tabela B é a mesma chave da tabela A.
Fiz o mapeamento assim:
@Entity
@Table(name = "tabelaA")
public class A {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "Id_A", unique = true, nullable = false)
private int idA;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_A", nullable = true)
private B b;
...
}
@Entity
@Table(name = "tabelaB")
public class B {
@Id
@Column(name = "id_A", unique = true, nullable = false)
private int idA;
...
}
tudo funciona blz, entretanto quando existe a entidade A e não existe a entidade B e faço um:
if (a.getB() != null)
System.out.println("Work");
ocorre a execption:
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [br.com.br.B#86]
Gostaria de saber como faço esse tipo de mapeamento quando A existe e B não obrigatoriamente existe!
Onde estou errando no mapeamento.