我有一个班级汽车和一个班级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();