クラスカーとクラスプレノットを持っています...
@Entity
@Table(name="car"
,catalog="gestcars")
public class Car implements java.io.Serializable {
private String targ;
private String model;
private Set<Prenot> prenots = new HashSet<Prenot>(0);
public Car() {
}
…….}
public class Prenot implements java.io.Serializable {
@Id
@Column(name="codice", unique=true, nullable=false)
@GeneratedValue(strategy =GenerationType.AUTO)
private int codice;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="car_targ", nullable=false)
private Car car;
…..}
これへの最初の呼び出し
For(x: …some cicle)…
try {
if(!session.isOpen()){
this.session=util1.HibernateUtil1.getSessionFactory().getCurrentSession();
}
org.hibernate.Transaction tx = session.beginTransaction();
Criteria crit=session.createCriteria(Prenot.class);
crit.add(Expression.eq("data", newdata))
.addOrder(Order.asc("data"))
.addOrder(Order.asc("from"));
prenot = (List<Prenot>) crit.list();
session.flush();
session.close();.....
return prenot;
私とオブジェクト Prenot に戻り、フェッチされた EAGER を使用します。実際、コードを使用してオブジェクト Car を取得できます。
Iterator i = prenot.iterator();
while (i.hasNext()) {
Prenot tempP = (Prenot) i.next();
Car c = tempP.getCar();…… }
リスト内の cicle (x… の場合) の後方反復が返されませんでした。 オブジェクト Car$$enhancerbycglib$$ があります。$$enhancerbycglib$$ オブジェクトを処理できないため、怠惰から熱心に変更しました。どうすればいいですか?
this 呼び出しの後にフェッチされるオブジェクトのタイプを変更するように見えます:
org.hibernate.Transaction tx=session.beginTransaction();
session.save(p);
session.flush();
tx.commit();