Configuration configuration=new Configuration();
SessionFactory sessionFactory=configuration.configure("hibernate.cfg.xml").buildSessionFactory();
Session session=sessionFactory.openSession();
Transaction tc=session.beginTransaction();
Query query=session.createQuery("select fs from Video as fs");
long c=42;
try {
Video video=(Video)session.get(Video.class,c);
tc.commit();
} catch (Exception e) {
e.printStackTrace();
tc.rollback();
}
session.close();上面这个段代码能够从数据库读取一条记录 但是使用Query 对象也就是 Query的list()方法怎么无法读取 是不是哪里配置有问题,请前辈们指点。小弟感激不尽 因为我搞了半天还没有出来
SessionFactory sessionFactory=configuration.configure("hibernate.cfg.xml").buildSessionFactory();
Session session=sessionFactory.openSession();
Transaction tc=session.beginTransaction();
Query query=session.createQuery("select fs from Video as fs");
long c=42;
try {
Video video=(Video)session.get(Video.class,c);
tc.commit();
} catch (Exception e) {
e.printStackTrace();
tc.rollback();
}
session.close();上面这个段代码能够从数据库读取一条记录 但是使用Query 对象也就是 Query的list()方法怎么无法读取 是不是哪里配置有问题,请前辈们指点。小弟感激不尽 因为我搞了半天还没有出来
报出错误
严重: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'v_name' not found on type com.hyz.entity.Video
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
at javax.el.BeanELResolver.property(BeanELResolver.java:279)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)
at org.apache.jsp.showAllInfo_jsp._jspx_meth_c_005fforEach_005f0(showAllInfo_jsp.java:127)
at org.apache.jsp.showAllInfo_jsp._jspService(showAllInfo_jsp.java:90)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
at org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
at org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)
at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:83)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
然后 query.list();
就报上面的错误了
这条错误我看到了
<property name="VName" type="java.lang.String">
<column name="V_NAME" length="50" not-null="true" />
</property>
只有这个配置里有这个v_name 但这应该是要和数据库里的保持一致啊
真的不明白意思了
* AbstractVideo entity provides the base persistence definition of the Video
* entity.
*
* @author MyEclipse Persistence Tools
*/public abstract class AbstractVideo implements java.io.Serializable { // Fields private Long VId;
private String VName;
private String VTarring;
private String VActor;
private String VDirector;
private Long VLength;
private String VType;
private String VCategories;
private String VDrama;
private Date VTakenTime;
private String VImage; // Constructors /** default constructor */
public AbstractVideo() {
} /** minimal constructor */
public AbstractVideo(Long VId, String VName, String VTarring,
String VActor, String VDirector, Long VLength, String VType,
String VCategories) {
this.VId = VId;
this.VName = VName;
this.VTarring = VTarring;
this.VActor = VActor;
this.VDirector = VDirector;
this.VLength = VLength;
this.VType = VType;
this.VCategories = VCategories;
} /** full constructor */
public AbstractVideo(Long VId, String VName, String VTarring,
String VActor, String VDirector, Long VLength, String VType,
String VCategories, String VDrama, Date VTakenTime, String VImage) {
this.VId = VId;
this.VName = VName;
this.VTarring = VTarring;
this.VActor = VActor;
this.VDirector = VDirector;
this.VLength = VLength;
this.VType = VType;
this.VCategories = VCategories;
this.VDrama = VDrama;
this.VTakenTime = VTakenTime;
this.VImage = VImage;
} // Property accessors public Long getVId() {
return this.VId;
} public void setVId(Long VId) {
this.VId = VId;
} public String getVName() {
return this.VName;
} public void setVName(String VName) {
this.VName = VName;
} public String getVTarring() {
return this.VTarring;
} public void setVTarring(String VTarring) {
this.VTarring = VTarring;
} public String getVActor() {
return this.VActor;
} public void setVActor(String VActor) {
this.VActor = VActor;
} public String getVDirector() {
return this.VDirector;
} public void setVDirector(String VDirector) {
this.VDirector = VDirector;
} public Long getVLength() {
return this.VLength;
} public void setVLength(Long VLength) {
this.VLength = VLength;
} public String getVType() {
return this.VType;
} public void setVType(String VType) {
this.VType = VType;
} public String getVCategories() {
return this.VCategories;
} public void setVCategories(String VCategories) {
this.VCategories = VCategories;
} public String getVDrama() {
return this.VDrama;
} public void setVDrama(String VDrama) {
this.VDrama = VDrama;
} public Date getVTakenTime() {
return this.VTakenTime;
} public void setVTakenTime(Date VTakenTime) {
this.VTakenTime = VTakenTime;
} public String getVImage() {
return this.VImage;
} public void setVImage(String VImage) {
this.VImage = VImage;
}}
* Video entity.
*
* @author MyEclipse Persistence Tools
*/
public class Video extends AbstractVideo implements java.io.Serializable { // Constructors /** default constructor */
public Video() {
} /** minimal constructor */
public Video(Long VId, String VName, String VTarring, String VActor,
String VDirector, Long VLength, String VType, String VCategories) {
super(VId, VName, VTarring, VActor, VDirector, VLength, VType,
VCategories);
} /** full constructor */
public Video(Long VId, String VName, String VTarring, String VActor,
String VDirector, Long VLength, String VType, String VCategories,
String VDrama, Date VTakenTime, String VImage) {
super(VId, VName, VTarring, VActor, VDirector, VLength, VType,
VCategories, VDrama, VTakenTime, VImage);
}}
<property name="VName" type="java.lang.String">
<column name="V_NAME" length="50" not-null="true" />
</property> 改成<property name="VName" type="String">
<column name="VName" length="50" not-null="true" />
</property> 试试
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193) 命名不规范造成的上面的错误时SQL查询的时候无法对应数据库字段
<property name="VName" type="String">
<column name="V_NAME" length="50" not-null="true" />
</property>
上面的name为“类的属性”
下面的name为“数据库的字段”如果你的后一个V_NAME为数据库字段的话。。酒啊改属性吧
将VName改成小写。。vName或vname等首字母不要大写
Property 'v_name' not found on type com.hyz.entity.Video
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.hyz.entity.Video" table="VIDEO" schema="SCOTT">
<id name="vid" type="java.lang.Long">
<column name="V_ID" precision="22" scale="0" />
<generator class="sequence" ><param name="sequence">deq_id</param></generator>
</id>
<property name="vname" type="java.lang.String">
<column name="V_Name" length="50" not-null="true" />
</property>
<property name="vtarring" type="java.lang.String">
<column name="V_TARRING" length="50" not-null="true" />
</property>
<property name="vactor" type="java.lang.String">
<column name="V_ACTOR" length="200" not-null="true" />
</property>
<property name="vdirector" type="java.lang.String">
<column name="V_DIRECTOR" length="50" not-null="true" />
</property>
<property name="vlength" type="java.lang.Long">
<column name="V_LENGTH" precision="22" scale="0" not-null="true" />
</property>
<property name="vtype" type="java.lang.String">
<column name="V_TYPE" length="10" not-null="true" />
</property>
<property name="vcategories" type="java.lang.String">
<column name="V_CATEGORIES" length="10" not-null="true" />
</property>
<property name="vdrama" type="java.lang.String">
<column name="V_DRAMA" length="100" />
</property>
<property name="vtakenTime" type="java.util.Date">
<column name="V_TAKEN_TIME" length="7" />
</property>
<property name="vimage" type="java.lang.String">
<column name="V_IMAGE" length="200" />
</property>
</class>
</hibernate-mapping>
谢谢你的建议 学习了。谢谢