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

Java GetAll方法使用hibernate和dataAccessUtil返回相同的值,java,hibernate,Java,Hibernate,我正在尝试使用DataAccessUtil和Hibernate会话从数据库获取数据。对my getall函数的响应只会在相同数量的元素中产生一个对象值。 下面是一段代码,可以进一步帮助我的观点 getAll函数: public static <T> List<T> getAll(Class<T> persistentClass) { Session session = HibernateUtil.openSession(); session.b

我正在尝试使用DataAccessUtil和Hibernate会话从数据库获取数据。对my 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;
}
公共静态列表getAll(类persistentClass){
Session Session=HibernateUtil.openSession();
session.beginTransaction();
@抑制警告(“未选中”)
List List=session.createQuery(“from”+persistentClass.getName()).List();
session.getTransaction().commit();
session.close();
退货清单;
}
这是来自我的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());

    }
List List=DataAccessUtil.getAll(requirement.class);
用于(要求r:列表)
{
System.out.println(r.getPid());
System.out.println(r.getRid());
System.out.println(r.getRname());
System.out.println(r.getDesp());
}

你的必修课是什么样子的?确保它实现了可序列化

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;
}

我不明白你想说什么。请重新表述您的陈述和问题。基本上,我需要在运行demo.java后从数据库中获取一个对象列表(需求),而不是获取一个对象列表。我得到一个对象被反复重复。例如,如果表中有3个对象,它会三次返回第一个对象谢谢!使用可序列化的工具