Hibernate - org.hibernate.hql.internal.ast.QuerySyntaxException:未映射产品

时间:2016-01-07 13:05:31

标签: java hibernate

我在尝试为我的数据库进行测试查询时遇到此错误。我引用java类而不是表名,但它没有帮助。添加到cfg.xml的映射也没有成功。可能是什么原因?

的hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
   <session-factory>
   <property name="hibernate.dialect">
      org.hibernate.dialect.MySQLDialect
   </property>
   <property name="hibernate.connection.driver_class">
      com.mysql.jdbc.Driver
   </property>
   <property name="hibernate.connection.url">
      jdbc:mysql://localhost:3306/michal
   </property>
   <property name="hibernate.connection.username">
      root
   </property>
   <property name="hibernate.connection.password">
      root
   </property>

   <property name="hibernate.hbm2ddl.auto">
   </property>

   <!-- List of XML mapping files -->

   <mapping package="regularmikey.DatabaseSingleton"/>
   <mapping class="regularmikey.DatabaseSingleton.Product" />

</session-factory>
</hibernate-configuration>

Product.java

package regularmikey.DatabaseSingleton;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "product")
public class Product {

    @Column(name = "id")
    @Id @GeneratedValue
    private String id;
    @Column(name = "name")
    private String name;
    @Column(name = "alloy")
    private String alloy;
    @Column(name = "weight")
    private String weight;
    @Column(name = "min_temp")
    private String min_temp;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAlloy() {
        return alloy;
    }
    public void setAlloy(String alloy) {
        this.alloy = alloy;
    }
    public String getWeight() {
        return weight;
    }
    public void setWeight(String weight) {
        this.weight = weight;
    }
    public String getMin_temp() {
        return min_temp;
    }
    public void setMin_temp(String min_temp) {
        this.min_temp = min_temp;
    }
}

DBSession.java

package regularmikey.DatabaseSingleton;

import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class DBSession {

    private static DBSession dbSession = null;
    private SessionFactory sessionFactory = null;

    private DBSession(){
        Configuration configuration = new Configuration().configure();
        ServiceRegistry serviceRegistry
            = new StandardServiceRegistryBuilder()
                .applySettings(configuration.getProperties()).build();


        sessionFactory = (configuration.buildSessionFactory(serviceRegistry)); 

    };


    public static DBSession getInstance() 
    {
        if(dbSession == null) {
            dbSession = new DBSession();
        }

        return dbSession;
    }


    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }



}

App.java

package regularmikey.DatabaseSingleton;

import java.util.Iterator;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class App 
{
    public static void main( String[] args )
    {
        DBSession dbFactory = DBSession.getInstance();

        Session session = dbFactory.getSessionFactory().openSession();
        Transaction tx = null;
        try{
           tx = session.beginTransaction();
           List products = session.createQuery("FROM Product").list(); 
           for (Iterator iterator = 
                             products.iterator(); iterator.hasNext();){
              Product product = (Product) iterator.next(); 
              System.out.print("Name: " + product.getName()); 
              System.out.print("Alloy: " + product.getAlloy()); 
              System.out.println("Weight: " + product.getWeight()); 
           }
           tx.commit();
        }catch (HibernateException e) {
           if (tx!=null) tx.rollback();
           e.printStackTrace(); 
        }finally {
           session.close(); 
        }
    }
}

0 个答案:

没有答案