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()方法怎么无法读取 是不是哪里配置有问题,请前辈们指点。小弟感激不尽 因为我搞了半天还没有出来

解决方案 »

  1.   

    仅仅是查询没必要使用事物,检查下控制台打出的sql,是否正确,或者把sql拿到数据库看看有无值
      

  2.   

    控制台打出的语句能够在数据库执行 
    报出错误
    严重: 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)
      

  3.   

    我是我的Query query=session.createQuery(hql)
      然后 query.list();
    就报上面的错误了 
      

  4.   

     Property 'v_name' not found on type com.hyz.entity.Video 
      

  5.   

    Property 'v_name' not found on type com.hyz.entity.Video 
    这条错误我看到了 
      <property name="VName" type="java.lang.String">
                <column name="V_NAME" length="50" not-null="true" />
            </property>
    只有这个配置里有这个v_name 但这应该是要和数据库里的保持一致啊 
    真的不明白意思了
      

  6.   

    帖这个类com.hyz.entity.Video
      

  7.   

    package com.hyz.entity;import java.util.Date;/**
     * 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;
    }}
      

  8.   

    package com.hyz.entity;import java.util.Date;/**
     * 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);
    }}
      

  9.   


    <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>   试试
      

  10.   

    TzSword 你的QQ是多少 我加你
      

  11.   

    改了后报:java.sql.SQLException: ORA-00904: "VIDEO0_"."VNAME": 标识符无效
      

  12.   

      你的主要问题是你的属性开头大写了。。
    at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193) 命名不规范造成的上面的错误时SQL查询的时候无法对应数据库字段
      

  13.   


    <property name="VName" type="String"> 
                <column name="V_NAME" length="50" not-null="true" /> 
        </property> 
    上面的name为“类的属性”
      下面的name为“数据库的字段”如果你的后一个V_NAME为数据库字段的话。。酒啊改属性吧
      将VName改成小写。。vName或vname等首字母不要大写
      

  14.   

    还有自动生成的时候单个实体不建议生成abstract实体.. 
      

  15.   

    我把实体类的属性都改成小写了 而且没有继承abstract实体了 然而还是出现那个错误 
    Property 'v_name' not found on type com.hyz.entity.Video 
      

  16.   

    <?xml version="1.0" encoding="utf-8"?>
    <!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>
      

  17.   

    终于出来了 改了实体类 jsp页面的EL表达式里面的属性没有改 引发了此异常
    谢谢你的建议 学习了。谢谢