Java 为什么返回arraylis的方法返回相同的值?

Java 为什么返回arraylis的方法返回相同的值?,java,hibernate,list,arraylist,Java,Hibernate,List,Arraylist,我正在使用Hibernate,我编写了一个返回数组列表的方法,该查询应该返回11个对象(行),但在这里它返回11个相同的对象(我的意思是11行相同)。 这是我的密码 ArrayList<HistoryLatitudeBean> vehicleHistoryDetails = new ArrayList<HistoryLatitudeBean>(); vehicleHistoryDetails=FetchVehicleHistDetails.getVehicleHisto

我正在使用Hibernate,我编写了一个返回数组列表的方法,该查询应该返回11个对象(行),但在这里它返回11个相同的对象(我的意思是11行相同)。 这是我的密码

ArrayList<HistoryLatitudeBean> vehicleHistoryDetails = new ArrayList<HistoryLatitudeBean>();

vehicleHistoryDetails=FetchVehicleHistDetails.getVehicleHistory(selectedVehicle,frmDate,toDate);
ArrayList vehicleHistoryDetails=new ArrayList();
vehicleHistoryDetails=FetchVehicleHistDetails.getVehicleHistory(selectedVehicle,frmDate,toDate);
getVehicleHistory()方法如下所示

public static ArrayList<HistoryLatitudeBean> getVehicleHistory(String selectedVehicle, Date frmDate, Date toDate) {
    Session session = HibernateSession.getHibernateSession();

    // Starting Transaction
    Transaction transaction = session.beginTransaction();
    String hql = null;
    ArrayList<HistoryLatitudeBean> vehicleHistoryList = new ArrayList<HistoryLatitudeBean>();
    try {

         hql="FROM HistoryLatitudeBean where vehicleno=:vehicleno and rdate BETWEEN :fromdate and :todate ";
         Query query =session.createQuery(hql);
        query.setParameter("vehicleno", 12);
        query.setParameter("fromdate", frmDate);
        query.setParameter("todate", toDate);
        List<HistoryLatitudeBean> groupList = (List<HistoryLatitudeBean>)query.list();

       //--->Here I checked through debug point , all object are same.

        for(HistoryLatitudeBean arr : groupList){
            vehicleHistoryList.add(arr);     


        }
        transaction.commit();

    } catch (Exception e) {
        if (transaction!=null) transaction.rollback();
        e.printStackTrace();
    }
    finally{

        session.close();
    }

    return vehicleHistoryList;
}
public static ArrayList getvehistory(字符串selectedVehicle,Date frmDate,datetodate){
会话会话=HibernateSession.getHibernateSession();
//开始交易
事务=会话。beginTransaction();
字符串hql=null;
ArrayList vehicleHistoryList=新的ArrayList();
试一试{
hql=“FROM historyratitudebean,其中vehicleno=:vehicleno和rdate介于:fromdate和:todate之间”;
Query=session.createQuery(hql);
query.setParameter(“vehicleno”,12);
query.setParameter(“fromdate”,frmDate);
setParameter(“todate”,todate);
List groupList=(List)query.List();
//--->在这里,我通过调试点检查,所有对象都是相同的。
对于(HistoryLatitudeBean arr:groupList){
车辆历史列表添加(arr);
}
commit();
}捕获(例外e){
if(transaction!=null)transaction.rollback();
e、 printStackTrace();
}
最后{
session.close();
}
返回车辆历史列表;
}

谁能告诉我出了什么问题。这对我真的很有帮助。谢谢。

也许你能告诉我们出了什么问题?我不知道……因为你每次都在用
vehicleno
12查询记录。@J.Lucky No我有11行记录了12号车辆的不同日期。在这里,如果我执行1个查询,它将返回11个我试图将其放入arraylist的对象。但是arraylist对象显示所有对象都是相同的。@ZerO我通过执行查询得到了相同的11个对象,但它无法返回11个不同的对象,因为我有11个用于不同日期的不同行。当您在DataSae服务器上运行它时,它返回了相同的记录,那么问题出在sql查询中。修好它。