Tenho duas entidades. Uma Fornecedor e outra ContaPagar. Fiz o relacionamento nas duas dessa forma:
@Entity
public class Fornecedor {
@Id
@GeneratedValue
private Long id;
private String nome;
private String descricao;
@OneToMany
@JoinColumn(name="fornecedor_id")
private Set<ContaPagar> contaPagar;
.
.
@Entity
public class ContaPagar{
@Id
@GeneratedValue
private Long id;
private String descricao;
private Double valor;
@Temporal(TemporalType.DATE)
private Calendar data = new GregorianCalendar();
private boolean pago;
@ManyToOne
@JoinColumn(name="fornecedor_id")
@Fetch(FetchMode.JOIN)
private Fornecedor fornecedor;
.
.
.
Esta funcionando blz…só na hora de fazer o update do fornecedor é que ocorre um problema. Ele faz o update do fornecedor, mas tb faz o update da ContaPagar. Como aparece no log:
desculpe, li novamente sua dúvida, tinha entendido que não estava salvando, mas na verdade está salvando e você não quer isso.
Se não tivesse salvando era so usar o :
CascadeType.ALL
como coloquei acima, ou seja, sempre salva todos os relacionados.
Agora como não quer update automático no contaPagar, coloque a @Transient e faça um teste.
ah, esses teus pojos é sempre bom vc implementar Serializable, como é interface marcadora e só colocar:
@Entity
public class Fornecedor implements Serializable {
flw
p.s. com o Transient você diz que o objeto não faz parte durante a serialização, e ele não entrará no processo, então com isto você não vai nem salvar e nem update, não sei é exatamente isso que deseja.
Se for apenas o update que você não deseja, então tente usar o @Cascade.