Hi,
I'm trying to implement Hibernate Criteria however I'm not returning any results. I think my entity is not be recognized.
When I try to perform a basic query I get "14:37:19,105 ERROR [STDERR] org.hibernate.hql.ast.QuerySyntaxException: Reports is not mapped [select r from Reports r]" from the following:
Query query = session.createQuery("select r from Reports r");
In hibernate.cfg.xml:
<session-factory name="hibernateSessionFactory">
<property name="show_sql">true</property>
<property name="connection.datasource">java:/#{project.name}DS</property>
<property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property name="transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
<property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<property name="hbm2ddl.auto">create-drop</property>
<property name="session_factory_name">java:/sessionFactory</property>
…
In components.xml:
<persistence:hibernate-session-factory name="hibernateSessionFactory"/> <persistence:managed-hibernate-session name="session" auto-create="true" session-factory-jndi-name="java:/sessionFactory"/>
My entity:
@Entity
@Table(name="REPORTS")
@Name("reports")
@Scope(ScopeType.EVENT)
public class Reports implements Serializable
{
/** the id **/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="ID")
private Long id;
@Column(name="RPT_NAME")
private String name;
…
}I am trying to implement the query when a search is performed:
@Stateful
@Scope(ScopeType.SESSION)
@Name("queryManager")
public class QueryManager implements QueryManagerLocal
{
@In
Session session;
public void performSearch()
{
Query query = session.createQuery("select r from Reports r");
List queryResult = query.list();
log.info("The size of result is " + queryResult.size());
}
}I can run the same query using entityManager with no problems. Is there some other setting hibernate is looking for to map my entity?
Resolved by using:
Criteria criteria = ((Session)entityManager.getDelegate()).createCriteria(User.class);