LAZY PROBLEMS处理类$$ enhancerbycglib的对象

时间:2012-07-04 12:36:04

标签: hibernate

我有一个班级汽车和一个班级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 whit the code

Iterator i = prenot.iterator();
                while (i.hasNext()) {
                    Prenot tempP = (Prenot) i.next();
                   Car c = tempP.getCar();…… }

在列表prenot返回的cicle(对于x ...)的不可告知的情况下,我有一个对象Car $$ enhancerbycglib $$ ... 为什么?。我从懒惰变为渴望,因为我可以。不处理$$ enhancerbycglib $$对象。我怎么样?

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

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

0 个答案:

没有答案