我有这个应用程序,我在其中显示事件列表。现在我已经在使用Hibernate状态添加、删除和显示它。我的事件表由5个字段组成——id、名称、描述、日期和类型。现在我正在尝试添加一个函数,我可以根据类型检索列表。所以我必须为此触发一个正常查询-select*from event if event="Holiday"
类型为假日或select*from event="event"
类型为事件。现在当我尝试这样做时,它会抛出一个错误。我在这里附加我的代码。
package net.admin.module.view;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.classic.Session;
import javax.servlet.http.HttpServletRequest;
import net.admin.module.dao.EventDAO;
import net.admin.module.dao.HolidaysDAO;
import net.admin.module.model.Event;
import net.admin.module.model.Holidays;
import org.apache.struts2.ServletActionContext;
import org.json.JSONArray;
import org.json.JSONObject;
import com.opensymphony.xwork2.ActionSupport;
public class EventAction extends ActionSupport {
private static final long serialVersionUID = 9149826260758390091L;
private Event event;
private List<Event> eventList;
private Holidays holidays;
private List<Holidays> holidaysList;
private HolidaysDAO holidaysDao;
private EventDAO eventDao;
private org.hibernate.Session session;
private List<?> list;
public String execute() {
HttpServletRequest request = ServletActionContext.getRequest();
String type = request.getParameter("type");
if(type!=null && (type.equalsIgnoreCase("holidays") || type.equalsIgnoreCase("event"))){
session = null;
//
Query query = session.createQuery("from s360_event where type = 'event' ");
list = query.list();
}else{
this.eventList = eventDao.list();
}
System.out.println("execute called");
return SUCCESS;
}
public String cal(){
return "calendar";
}
public String eventAjax() {
this.eventList = eventDao.list();
HttpServletRequest request = ServletActionContext.getRequest();
JSONArray jArr = new JSONArray();
try{
JSONObject jObject = null;
Event event = null;
for(int i = 0; i < eventList.size(); i++) {
event = eventList.get(i);
jObject=new JSONObject();
jObject.put("title", event.getName());
jObject.put("start", event.getDate());
jObject.put("allDay", true);
jArr.put(jObject);
}
request.setAttribute("json", jArr);
}
catch(Exception e){
e.printStackTrace();
}
return "json";
}
// to add an event
public String add() {
System.out.println(getEvent());
try {
Event eve = getEvent();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
eve.setDate(df.parse(eve.getDateStr()));
} catch (ParseException e) {
e.printStackTrace();
}
eventDao.add(eve);
} catch (Exception e) {
e.printStackTrace();
}
return "redirect";
}
// to delete an event
public String delete() {
HttpServletRequest request = ServletActionContext.getRequest();
String eventId = request.getParameter("id");
eventDao.delete(Integer.parseInt(eventId));
return "redirect";
}
public Event getEvent() {
return event;
}
public List<Event> getEventList() {
return eventList;
}
public void setEvent(Event event) {
this.event = event;
}
public void setEventList(List<Event> eventList) {
this.eventList = eventList;
}
public Holidays getHolidays() {
return holidays;
}
public List<Holidays> getHolidaysList() {
return holidaysList;
}
public void setHolidays(Holidays holidays) {
this.holidays = holidays;
}
public void setHolidaysList(List<Holidays> holidaysList) {
this.holidaysList = holidaysList;
}
public HolidaysDAO getHolidaysDao() {
return holidaysDao;
}
public void setHolidaysDao(HolidaysDAO holidaysDao) {
this.holidaysDao = holidaysDao;
}
public EventDAO getEventDao() {
return eventDao;
}
public void setEventDao(EventDAO eventDao) {
this.eventDao = eventDao;
}
}
这是我的动作课。我在jsp中这样调用它:
<li><a href="<s:url value='/Event?type=event'/>">Events</a></li>
<li><a href="<s:url value='/Event?type=holidays'/>">Holidays</a></li>
</li>
我哪里出错了,有线索吗?
错误是 -
java.lang.NullPointerException
net.admin.module.view.EventAction.execute(EventAction.java:38)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在执行时,“会话”在行号处为空: 38
Query query = session.createQuery("from s360_event where type = 'event' ");
因为你是初始化的。它在第 36 行为空
session = null;
这就是为什么有例外“爪哇.郎.空点例外”
大家好,我正在做一个整合struts2、spring和hibernate的项目,所以当我运行这个项目时,我得到了以下信息: Grave:Erreur lors de la configuration de la classe d'coute de l'application(应用程序侦听器)com。太阳面孔。配置。ConfigureListener java。lang.ClassNotFoundE
问题内容: 我正在将旧数据库迁移到我的Rails应用程序(3.2.3)中。原始数据库带有相当多的长SQL查询报表。就目前而言,我想使用Rails应用程序中的sql查询,然后(在时间允许的情况下)将sql查询一一交换为“适当的” Rails查询。 我有一个临床模型,控制器具有以下代码: 但是,当我运行该代码时,会遇到一些与格式有关的错误。 在将它导入控制器之前,我应该对sql查询做些什么?尽管查询可
我希望通过登录搜索员工列表,并使用扩展的DAO接口: 在我的服务层中,我用
问题内容: 我正在尝试将Hibernate用于多线程应用程序,其中每个线程都检索一个对象并将其插入表中。我的代码如下所示。我每个线程都有本地hibernate会话对象,在每个InsertData中,我都执行beginTransaction和commit。 我面临的问题是很多次我收到“ org.hibernate.TransactionException:不支持嵌套事务” 由于我是hibernate
问题内容: 有没有一种方法可以将HQL命名查询外部化为外部文件。我有太多的命名查询,在实体类的开头使用和会很麻烦。 有没有一种方法可以将多个文件外部化? 问题答案: 您可以将查询放入域对象的根包中的类中。但是,您必须使用Hibernate自己的和批注,而不是使用。 示例文件: 然后,您必须将包添加到中。我使用Spring,所以需要设置属性: 您也可以将类型和过滤器定义放在同一文件中。