при попытке выполнить выбор с спящим режимом, брошенное это исключение:запроса в спящем режиме с аннотациями
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 в atributtes имеют такое же имя,
явно поставленные добытчиками и сеттеров, и мой 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";
}
Да, также в HQL он должен быть «от Formato е» – Zeus
да, вы правы, но я нашел, что я лучшее решение без записи каждого объекта: <свойство Name = «packagesToScan»> \t \t \t \t \t \t \t com.mufi.objeto \t \t \t \t \t но теперь бросил это исключение: Ошибка создания боб с именем 'mySessionFactory', определенный в ServletContext ресурс [/WEB-INF/servlet-context.xml ]: Ошибка вызова метода init; Вложенное исключение - org.hibernate.MappingException: постоянный класс неизвестен: int –
vrvictor
вам, возможно, придется использовать Integer вместо int в файле сопоставления – Zeus