【发布时间】:2013-11-27 18:45:44
【问题描述】:
当我尝试使用休眠完成选择时,抛出此异常:
org.hibernate.hql.internal.ast.QuerySyntaxException: formato is not mapped [from formato]
at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180)
at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:93)
at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:324)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3420)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3309)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:706)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:562)
我检查了我的对象注释并认为没问题,这是代码:
@Entity
@Table(name="formato")
public class Formato implements Serializable{
/**
*
*/
private static final long serialVersionUID = 5849413670083213438L;
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name="formato")
private String formato;
@Column(name="tipoItem")
private int tipoItem;
在 BD 中,属性具有相同的名称
显然放置了 getter 和 setter,以及我的 DAO:
@Transactional
public List<Formato> findAllFormatos() {
Transaction tx = null;
session = sessionFactory.getCurrentSession();
try {
tx = session.beginTransaction();
List formatos = session.createQuery("from formato").list();
System.out.println("Pase :'D");
tx.commit();
return formatos;
} catch (Exception e) {
// TODO: handle exception
if (tx != null) tx.rollback();
e.printStackTrace();
return null;
}
}
最后是控制器,但我认为问题出在 DAO 中
@RequestMapping(value = "timbre", method = RequestMethod.GET)
public String redirigir(@RequestParam("id") int id, Model model) {
Timbre t = null;
if (id == 1){
t = new Timbre();
model.addAttribute("t", t);
List<Formato> formatos= timbreDAO.findAllFormatos();
model.addAttribute("formatos", formatos);
return "formTimbre";
}
else if (id == 2)
return "modificarTimbre";
else if (id == 3)
return "eliminarTimbre";
else if (id == 4)
return "buscarTimbre";
else
return "timbre";
}
【问题讨论】:
标签: mysql spring hibernate taglib hibernate-annotations