這不是一個新的例外。我經歷了很多堆棧溢出的論壇帖子,並理解爲什麼會發生這種情況。但我需要幫助解決我的問題。EJB異常 - 嘗試使用具有空會話的間接遍歷關係。
我有兩個實體bean設備類和設備。以下是代碼。
public class EquipmentClass implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@Column(name = "class_name")
private String className;
@Column(name = "description")
private String description;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "equipmentClass")
private Collection<Equipment> equipmentCollection;
// getter and setter methods
}
public class Equipment implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Basic(optional = false)
@Column(name = "created_on")
@Temporal(TemporalType.TIMESTAMP)
private Date createdOn;
@Basic(optional = false)
@Column(name = "updated_on")
@Temporal(TemporalType.TIMESTAMP)
private Date updatedOn;
@JoinColumn(name = "equipment_class", referencedColumnName = "id")
@ManyToOne(optional = false)
private EquipmentClass equipmentClass;
// setter and getter methods
}
期間添加一個設備,我設置設備類和使用equipmentFacade.create(equipment);
堅持它(該堅持的實體)
EquipmentClass ec = equipment.getEquipmentClass();
>>> ec.getEquipmentCollection().add(equipment); <<
equipmentClassFacade.edit(ec);
我得到異常的標記(>> <)線以上。
如解釋here,我試圖做ec.getEquipmentCollection().size();
。但我在那裏得到例外。
我該如何繼續?任何幫助深表感謝。
需要'equipmentFacade.create'方法內容。 Imho它只是方法調用時丟失的持久化上下文的一個pb。 – Gab 2013-03-28 15:51:23
getEntityManager()。persist(entity);這正是創建方法的內部。 – Jay 2013-03-28 16:19:25