Boa Tarde galera,
Fiz uma herança no hebernate usando a estratégia JOINED, pois então:
Tenho a superclasse chamada Usuario.
Como subclasse tenho Tecnico
Uma tabela Usuario e uma Tecnico
Quando faço um consulta fazendo o join entre eles funciona perfeitamente, mas quando eu tento salvar, ele cria dois registros na tabela Usuario , sendo que um em branco e outro com os dados corretos, inserindo também um registro na tabela Tecnico com os dados corretos do técnico. Vejam as duas entidades abaixo:
@Entity
@Inheritance(strategy=InheritanceType.JOINED) //Modo Joined - Herança
public class Usuario extends ActionForm implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id", unique=true, nullable=false, length = 4)
private long id;
@OneToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
@JoinColumn(name = "idTecnico", nullable = true)
private Tecnico tecnico;
@Column(name = "usuario", nullable = true, length = 20)
private String usuario;
...
Tecnico.java
@Entity
@PrimaryKeyJoinColumn(name="id")
public class Tecnico extends Usuario implements Serializable {
@Column(name="id", unique=true, insertable=false, updatable=false, length=4)
private long id;
@Column(name="especialidade", unique=true, nullable=false, length = 20)
private String especialidade;
...
Não entendo o que eu esqueci ai nas anotações…