Duvida Hibernate Insert

0 respostas
G

Prezados, tenho a seguinte estrutura:

ProprietarioPOJO
@Entity
@Table(name = "proprietario")
public class Proprietario implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name = "idProprietario", nullable = false)
	private Integer idProprietario;

	@Column(name = "proprietarioNome", nullable = false)
	private String proprietarioNome;

	@Column(name = "numeroArrais", nullable = false)
	private String numeroArrais;

	@Column(name = "cpf", nullable = false)
	private String cpf;

	@Column(name = "telefone", nullable = false)
	private String telefone;

	@OneToMany(mappedBy = "proprietario", fetch = FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private Collection<Embarcacao> embarcacoes;
Embarcacao POJO
@Entity
@Table(name = "embarcacao")
@Inheritance(strategy = InheritanceType.JOINED)
public class Embarcacao implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY )
	@Column(name = "idEmbarcacao", unique = true, nullable = false)
	private Integer idEmbarcacao;

	@Column(name = "nomeEmbarcacao")
	private String nomeEmbarcacao;

	@Column(name = "inscricaoEmbarcacao")
	private String inscricaoEmbarcacao;

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "idProprietario", insertable = true, updatable = true)
	@Fetch(FetchMode.JOIN)
	@Cascade(CascadeType.SAVE_UPDATE)
	private Proprietario proprietario;
JeSki POJO
@Entity
@Table(name = "jetski")
@PrimaryKeyJoinColumn(name = "idEmbarcacao")
public class JetSki extends Embarcacao {

	private static final long serialVersionUID = 1L;

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "embarcacao_idEmbarcacao")
	private Embarcacao embarcacao;

	@Column(name = "jetComprimento")
	private String jetComprimento;

	@Column(name = "jetPotenciaMotor")
	private String jetPotenciaMotor;

	@Column(name = "jetAno")
	private String jetAno;

	@Column(name = "jetQuantidadePessoas")
	private String jetQuantidadePessoas;

	@Column(name = "jetModelo")
	private String jetModelo;

	@Column(name = "jetMarca")
	private String jetMarca;

	@Column(name = "jetTipoMotor")
	private String jetTipoMotor;

Estou conseguindo perssitir em todas as tabelas, porem com essas restriçoes:

1) Insiro uma embarcacao e seto ela no jetski junto com os outros atributos do jetski, porem quando faz o insert na tabela jetski ele faz outro insert na tabela embarcacao com um novo ID.
2) Quando delete um jetski, ele deleta junto a embarcaçao e o proprietario, o certo era so deletar a embarcaçao.

Criado 30 de agosto de 2012
Respostas 0
Participantes 1