我有错误,我不明白为什么下面没有代码,虽然我知道他的意思。
错误
Org.hibernate.TransientPropertyValueException:对象引用一个 未保存的瞬态实例 - 保存之前的瞬态实例 清洁:com.domain.Car.motor - > com.domain.Motor
我在另一个方法中遇到此错误,当我报告session.flush()和session.clear()现在错误传播到此方法时,我会理解没有 填写session.flush()和session.clear()代码。
我没有使用级联,因为电机不能与汽车一起保存,我想在车内保存引擎
错误发生在样本方法SaveSend(Carro carro)的标准中;
问题示例
@Entity
@Table(name="carro")
public class Carro implements Serializable {
@Id
private Long codigo;
private String nome;
@ManyToOne(targetEntity=Motor.class)
@JoinColumn(name="codigoMotor", referencedColumnName = "codigoMotor")
private Motor motor;
// get and set
}
@Entity
@Table(name="motor")
public class Motor implements Serializable {
@Id
private Long codigoMotor;
private String nome;
// get and set
}
public void salvar() {
carro.setMotor(getMotor);
dao.salvar(carro); // Saving the car Ok;
depoisSalvar(carro);
}
public void depoisSalvar(carro) {
salvarVenda(carro);
}
// Saving the sale
public void salvarVenda(Carro carro) {
// Before saving, go to DAO to find the buyer
Criteria cri = getSession().createCriteria(Vendedor.class);
cri.add(Restrictions.eq("carro.codigo", carro.getCodigo()));
return cri.list(); // Aqui acontece o erro....
dao.salvar();
}