GetAll方法使用hibernate和dataAccessUtil返回相同的值

时间:2014-01-02 20:21:38

标签: java hibernate

我正在尝试使用DataAccessUtil和Hibernate Session从数据库中获取数据。对我的getall函数的响应导致只有一个对象值在相同数量的元素中。 这段代码可以帮助我进一步指出。

getAll功能:

public static <T> List<T> getAll(Class<T> persistentClass) {
    Session session = HibernateUtil.openSession();
    session.beginTransaction();
    @SuppressWarnings("unchecked")
    List<T> list = session.createQuery( "from " + persistentClass.getName() ).list();
    session.getTransaction().commit();
    session.close();
    return list;
}

这是我的demo.java

的调用
List <Requirment> list=DataAccessUtil.getAll(Requirment.class);

    for (Requirment r:list)
    {

        System.out.println(r.getPid());
        System.out.println(r.getRid());
        System.out.println(r.getRname());
        System.out.println(r.getDesp());

    }

1 个答案:

答案 0 :(得分:0)

您的Requirment课程是什么样的?确保它实现Serializable。

public class Requirment implements Serializable

您对象上的唯一标识符是什么?它是pid吗?确保数据库表和Requirment类中有唯一的列标识符。 假设pid是一个标识列:

@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "pid", unique = true, nullable = false)
public Integer getPid() {
   return this.pid;
}