Java 如何使用hibernate注释映射两个表(一对多)+;春季MVC
1.我使用的是spring mvc+Hibernate 2.我使用两个表实现了一个项目,它有一对多映射,工作非常好 3.然后我想使用另外两个表,它们也有一对多。这是我的相同场景。但是给出一个错误,似乎是配置错误,我是新手,任何人都可以帮助我 这是我的模型(会议类型和会议有1到多个) 控制器的这一部分## JSP中的此视图##() 当我只运行fist for reach时,它工作了,但当我同时运行这两个时,它给出了以下错误1.事情是这样的,我以前是这样做的1.它工作了Java 如何使用hibernate注释映射两个表(一对多)+;春季MVC,java,hibernate,jsp,spring-mvc,Java,Hibernate,Jsp,Spring Mvc,1.我使用的是spring mvc+Hibernate 2.我使用两个表实现了一个项目,它有一对多映射,工作非常好 3.然后我想使用另外两个表,它们也有一对多。这是我的相同场景。但是给出一个错误,似乎是配置错误,我是新手,任何人都可以帮助我 这是我的模型(会议类型和会议有1到多个) 控制器的这一部分## JSP中的此视图##() 当我只运行fist for reach时,它工作了,但当我同时运行这两个时,它给出了以下错误1.事情是这样的,我以前是这样做的1.它工作了 <c:forEach
<c:forEach items="${meetingList}" var="meetingType">
<td> This from MeetingTypes: ${meetingType.typeName}</td>
<c:forEach items="meetingType.Meetings" var="meet">
<td> This from Meetings: ${meet.roomName} </td>
</c:forEach>
</c:forEach>
在浏览器上
HTTP状态500-javax.el.PropertyNotFoundException:在java.lang.String类型上找不到属性“roomName”
类型异常报告
消息javax.el.PropertyNotFoundException:在java.lang.String类型上找不到属性“roomName”
说明服务器遇到内部错误,无法满足此请求
异常我在jsp中看到一个错误:
meetingType.Meetings
在第二个forEach中应该是${meetingType.Meetings}
。
以下是更正的版本:
<c:forEach items="${meetingList}" var="meetingType">
<td> This from MeetingTypes: ${meetingType.typeName}</td>
<c:forEach items="${meetingType.Meetings}" var="meet">
<td> This from Meetings: ${meet.roomName} </td>
</c:forEach>
</c:forEach>
这来自MeetingTypes:${meetingType.typeName}
这来自会议:${meet.roomName}
你可以在谷歌上找到很多例子。。首先尝试该示例,如果您遇到任何错误,请检查具体错误,然后尝试解决。。。
@Controller
public class MeetingTypesController {
@Autowired
private MeetingTypeService meetingTypeService;
@Autowired
private MeetingService meetingService;
@RequestMapping("/detailsPage")
public String getAllmeeting(Map<String, Object> map){
map.put("meetingList", meetingTypeService.getAllMeetingTypes());
return "details";
}
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import pearson.dashboard.dao.MeetingTypeDao;
@Transactional
@Repository
public class MeetingTypeDaoImpl implements MeetingTypeDao {
@Autowired
private SessionFactory sessionFactory;
public List getAllMeetingTypes() {
// TODO Auto-generated method stub
return sessionFactory.getCurrentSession().createQuery("from MeetingTypes").list();
}
}
<c:forEach items="${meetingList}" var="meetingType">
<td> This from MeetingTypes: ${meetingType.typeName}</td>
<c:forEach items="meetingType.Meetings" var="meet">
<td> This from Meetings: ${meet.roomName} </td>
</c:forEach>
</c:forEach>
Hibernate: select teams0_.teamID as teamID0_, teams0_.name as name0_ from Teams teams0_
Hibernate: select releases0_.teamID as teamID0_1_, releases0_.releaseID as releaseID1_, releases0_.releaseID as releaseID1_0_, releases0_.cabCall as cabCall1_0_, releases0_.orcleCode as orcleCode1_0_, releases0_.prodDate as prodDate1_0_, releases0_.releaseName as releaseN5_1_0_, releases0_.remarks as remarks1_0_, releases0_.rrr as rrr1_0_, releases0_.staging as staging1_0_, releases0_.status as status1_0_, releases0_.teamID as teamID1_0_ from Releases releases0_ where releases0_.teamID=?
Hibernate: select releases0_.teamID as teamID0_1_, releases0_.releaseID as releaseID1_, releases0_.releaseID as releaseID1_0_, releases0_.cabCall as cabCall1_0_, releases0_.orcleCode as orcleCode1_0_, releases0_.prodDate as prodDate1_0_, releases0_.releaseName as releaseN5_1_0_, releases0_.remarks as remarks1_0_, releases0_.rrr as rrr1_0_, releases0_.staging as staging1_0_, releases0_.status as status1_0_, releases0_.teamID as teamID1_0_ from Releases releases0_ where releases0_.teamID=?
Hibernate: select releases0_.teamID as teamID0_1_, releases0_.releaseID as releaseID1_, releases0_.releaseID as releaseID1_0_, releases0_.cabCall as cabCall1_0_, releases0_.orcleCode as orcleCode1_0_, releases0_.prodDate as prodDate1_0_, releases0_.releaseName as releaseN5_1_0_, releases0_.remarks as remarks1_0_, releases0_.rrr as rrr1_0_, releases0_.staging as staging1_0_, releases0_.status as status1_0_, releases0_.teamID as teamID1_0_ from Releases releases0_ where releases0_.teamID=?
Hibernate: select releases0_.teamID as teamID0_1_, releases0_.releaseID as releaseID1_, releases0_.releaseID as releaseID1_0_, releases0_.cabCall as cabCall1_0_, releases0_.orcleCode as orcleCode1_0_, releases0_.prodDate as prodDate1_0_, releases0_.releaseName as releaseN5_1_0_, releases0_.remarks as remarks1_0_, releases0_.rrr as rrr1_0_, releases0_.staging as staging1_0_, releases0_.status as status1_0_, releases0_.teamID as teamID1_0_ from Releases releases0_ where releases0_.teamID=?
Hibernate: select releases0_.teamID as teamID0_1_, releases0_.releaseID as releaseID1_, releases0_.releaseID as releaseID1_0_, releases0_.cabCall as cabCall1_0_, releases0_.orcleCode as orcleCode1_0_, releases0_.prodDate as prodDate1_0_, releases0_.releaseName as releaseN5_1_0_, releases0_.remarks as remarks1_0_, releases0_.rrr as rrr1_0_, releases0_.staging as staging1_0_, releases0_.status as status1_0_, releases0_.teamID as teamID1_0_ from Releases releases0_ where releases0_.teamID=?
Hibernate: select releases0_.teamID as teamID0_1_, releases0_.releaseID as releaseID1_, releases0_.releaseID as releaseID1_0_, releases0_.cabCall as cabCall1_0_, releases0_.orcleCode as orcleCode1_0_, releases0_.prodDate as prodDate1_0_, releases0_.releaseName as releaseN5_1_0_, releases0_.remarks as remarks1_0_, releases0_.rrr as rrr1_0_, releases0_.staging as staging1_0_, releases0_.status as status1_0_, releases0_.teamID as teamID1_0_ from Releases releases0_ where releases0_.teamID=?
Hibernate: select releases0_.teamID as teamID0_1_, releases0_.releaseID as releaseID1_, releases0_.releaseID as releaseID1_0_, releases0_.cabCall as cabCall1_0_, releases0_.orcleCode as orcleCode1_0_, releases0_.prodDate as prodDate1_0_, releases0_.releaseName as releaseN5_1_0_, releases0_.remarks as remarks1_0_, releases0_.rrr as rrr1_0_, releases0_.staging as staging1_0_, releases0_.status as status1_0_, releases0_.teamID as teamID1_0_ from Releases releases0_ where releases0_.teamID=?
Hibernate: select releases0_.teamID as teamID0_1_, releases0_.releaseID as releaseID1_, releases0_.releaseID as releaseID1_0_, releases0_.cabCall as cabCall1_0_, releases0_.orcleCode as orcleCode1_0_, releases0_.prodDate as prodDate1_0_, releases0_.releaseName as releaseN5_1_0_, releases0_.remarks as remarks1_0_, releases0_.rrr as rrr1_0_, releases0_.staging as staging1_0_, releases0_.status as status1_0_, releases0_.teamID as teamID1_0_ from Releases releases0_ where releases0_.teamID=?
Hibernate: select meetingtyp0_.meetingTypeID as meetingT1_2_, meetingtyp0_.typeName as typeName2_ from MeetingTypes meetingtyp0_
Hibernate: select meetings0_.meetingTypeID as meetingT6_2_1_, meetings0_.meetingID as meetingID1_, meetings0_.meetingID as meetingID3_0_, meetings0_.comment as comment3_0_, meetings0_.meetingHeading as meetingH3_3_0_, meetings0_.meetingTypeID as meetingT6_3_0_, meetings0_.roomName as roomName3_0_, meetings0_.sheduleTime as sheduleT5_3_0_ from Meetings meetings0_ where meetings0_.meetingTypeID=?
Hibernate: select meetings0_.meetingTypeID as meetingT6_2_1_, meetings0_.meetingID as meetingID1_, meetings0_.meetingID as meetingID3_0_, meetings0_.comment as comment3_0_, meetings0_.meetingHeading as meetingH3_3_0_, meetings0_.meetingTypeID as meetingT6_3_0_, meetings0_.roomName as roomName3_0_, meetings0_.sheduleTime as sheduleT5_3_0_ from Meetings meetings0_ where meetings0_.meetingTypeID=?
Nov 21, 2013 7:34:07 PM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'roomName' not found on type java.lang.String
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:237)
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:214)
at javax.el.BeanELResolver.property(BeanELResolver.java:325)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:85)
at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
at org.apache.el.parser.AstValue.getValue(AstValue.java:183)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1026)
at org.apache.jsp.WEB_002dINF.views.details_jsp._jspx_meth_c_005fforEach_005f1(details_jsp.java:750)
at org.apache.jsp.WEB_002dINF.views.details_jsp._jspx_meth_c_005fforEach_005f0(details_jsp.java:707)
at org.apache.jsp.WEB_002dINF.views.details_jsp._jspService(details_jsp.java:256)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Nov 21, 2013 7:34:07 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [appServlet] in context with path [/controller] threw exception [javax.el.PropertyNotFoundException: Property 'roomName' not found on type java.lang.String] with root cause
javax.el.PropertyNotFoundException: Property 'roomName' not found on type java.lang.String
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:237)
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:214)
at javax.el.BeanELResolver.property(BeanELResolver.java:325)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:85)
at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:104)
at org.apache.el.parser.AstValue.getValue(AstValue.java:183)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1026)
at org.apache.jsp.WEB_002dINF.views.details_jsp._jspx_meth_c_005fforEach_005f1(details_jsp.java:750)
at org.apache.jsp.WEB_002dINF.views.details_jsp._jspx_meth_c_005fforEach_005f0(details_jsp.java:707)
at org.apache.jsp.WEB_002dINF.views.details_jsp._jspService(details_jsp.java:256)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
<c:forEach items="${meetingList}" var="meetingType">
<td> This from MeetingTypes: ${meetingType.typeName}</td>
<c:forEach items="${meetingType.Meetings}" var="meet">
<td> This from Meetings: ${meet.roomName} </td>
</c:forEach>
</c:forEach>