0

我有一个班级 Car 和一个班级 Prenot ...

@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();…… }

列表 prenot 中的 cicle(对于 x...)的不可告人的 iterqtion 我有一个对象 Car$$enhancerbycglib$$... 为什么?我从懒惰变成了渴望,因为我不能处理 $$enhancerbycglib$$ 对象。我怎么能?

它看起来改变了 this 调用后获取的对象的类型:

   org.hibernate.Transaction tx=session.beginTransaction();
       session.save(p);
        session.flush();
       tx.commit();   
4

0 回答 0