我检查过很多线程,但没有解决方案正在运行。根据这些线程,映射应该有效。
线程“main”中的异常 org.hibernate.hql.internal.ast.QuerySyntaxException:产品不是 映射[来自产品]
的hibernate.cfg.xml
<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.show_sql">true</property>
<property name="hibernate.current_session_context_class">thread</property>
<mapping class="api.test.model.Product" />
</session-factory>
</hibernate-configuration>
Product.java:
package api.test.model;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name="products")
public class Product implements Serializable{
...
}
道:
public List<Product> getProduct(Integer id) {
List<Product> products = (List<Product>) openCurrentSessionwithTransaction()
.createQuery("from Product").setMaxResults(100).list();
return products;
}
这不会引发错误,但不会产生任何结果:
.createQuery("from " + Product.class.getName()).setMaxResults(100).list();
我也尝试在persistence.xml中映射该类,但也不起作用:
<persistence-unit name="transactions-optional">
<class>api.test.model.Product</class>
提前致谢。