silvionetto 16 de jul. de 2008
Você já tentou cria um construtor para produto passando a venda.
Ex:
public Produto (){}
public Produto ( Venda venda ){
setVenda ( venda );
}
Que ai quando salvar o produto o hibernate deve colocar o id da venda no produto.
rafoli 16 de jul. de 2008
testei não deu certo....olha só os códigos
@Entity
public class ServiceOrder {
@Id
@GeneratedValue
private Integer id ;
@OneToOne
@JoinColumn ( name = "customer_id" )
private Customer customer ;
@OneToMany ( mappedBy = "serviceOrder" , fetch = FetchType . LAZY )
@Cascade ( CascadeType . ALL )
private List < ServiceOrderDevice > devices ;
...
}
@Entity
public class ServiceOrderDevice {
@Id
@GeneratedValue
private Integer id ;
@ManyToOne ( fetch = FetchType . EAGER )
@JoinColumn ( name = "serviceorder_id" )
@Cascade ( CascadeType . ALL )
private ServiceOrder serviceOrder ;
@OneToOne
@JoinColumn ( name = "device_id" )
private Device device ;
public ServiceOrderDevice () {
}
public ServiceOrderDevice ( ServiceOrder serviceOrder ) {
setServiceOrder ( serviceOrder );
}
...
}
e o método que salva
public String save () {
ServiceOrderDevice serviceOrderDevice = new ServiceOrderDevice () ; // dispositivo teste
List < ServiceOrderDevice > deviceList = new ArrayList < ServiceOrderDevice > () ;
deviceList .add ( serviceOrderDevice ) ;
serviceOrder .setDevices ( deviceList ) ;
serviceOrderDAO .save ( serviceOrder ) ;
return insert () ;
}
não está setando o campo serviceorder_id na tabela ServiceOrderDevice...
grato
rafoli 17 de jul. de 2008
consegui resolver
era o método
public void setDevices ( List < ServiceOrderDevice > devices ) {
this.devices = devices ;
//trecho de código q acrescentei
for(ServiceOrderDevice sod : devices )
sod . setServiceOrder ( this );
}
não sei se isso é um armego ou se é o correto…
abraços