这是我的代码(由axis2创建的web服务,由eclipse jboss工具生成)
public PlayerCalendar[] getCalendarByUseridArr(String userid){
au.backpack.Calendar cal=new au.backpack.Calendar();
PlayerCalendar[] arr=new PlayerCalendar[cal.getCalendarByUserid(userid).length];
arr=cal.getCalendarByUserid(userid);//get the hibernate dao result
for(int i=0;i<arr.length;i++){
//i want to create new Url value
String url=arr[i].getUrl()+"?eventid="+arr[i].getEventid();
arr[i].setUrl(url);
}
return arr;
}
这是我的dao功能
public PlayerCalendar[] getCalendarByUserid(String userid){
Session session = HibernateUtil.currentSession();
Transaction tx = null;
tx = session.beginTransaction();
List<PlayerCalendar> list =session.createQuery("from PlayerCalendar where userid='"+userid+"'").list();
int listlen=1;
if(list.size()>1)
listlen=list.size();
PlayerCalendar [] sr = new PlayerCalendar[listlen];
return list.toArray(sr);
}
它可以在我的xml Web服务页面(Axis2)中运行,
网址值如:
user_calendarEvent.jsp?的EventID = 1
但是当我刷新页面大约5~9次
它开始附加更多“?eventid = 1”:
user_calendarEvent.jsp?的EventID = 1?的EventID = 1
并且在开始追加之后, 每次刷新它,它总是附加“eventid = 1”
user_calendarEvent.jsp?的EventID = 1?的EventID = 1?的EventID = 1
但真正的价值只是
user_calendarEvent.jsp?的EventID = 1
哪里错了?
感谢〜
答案 0 :(得分:1)
您没有关闭Hibernate会话,因此您的PlayerCalendar
实例仍然附加到会话,然后通过调用
url
属性
String url=arr[i].getUrl()+"?eventid="+arr[i].getEventid();
arr[i].setUrl(url);
所以hibernate在每个请求上更新实体(并将?eventid=...
连接到它)。
因此,拥有多个?eventId=...
s。