I get an exception below
(Exception: org.hibernate.hql.internal.ast.QuerySyntaxException: User is not displayed)
This happened when calling this code.
TypedQuery<User> query = jpaApi.em().createQuery("select u from User u where u.email = :email and u.secretHash = :secretHash", User.class)
.setParameter("email", parameter.getEmail())
.setParameter("secretHash", hashAlgorithm.hash(parameter.getPassword()));
but if this project was started using the start of "actirvator start" (env development), this exception did not occur.
that means ... only on a production environment did I get this exception.
how can i fix it.
please help me.
Thank you for your help, and my project information is below
1) Play: 2.5.4
2) hibernate: 5.2.1.final
Exception Message:
: org.hibernate.hql.internal.ast.QuerySyntaxException: [ u u, u.email =: email u.secretHash =: secretHash] at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:79) at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:103) org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:218) org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142) org.hibernate.engine.query.spi.HQLQueryPlan. (HQLQueryPlan.java:115) org.hibernate.engine.query.spi.HQLQueryPlan. (HQLQueryPlan.java:77) org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:152) at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:521) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:623) ... 52
: org.hibernate.hql.internal.ast.QuerySyntaxException: at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:171) at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:91) at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:79) at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:321) at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3690) at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3579) at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:718) org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:574) at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:311) at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:259) org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:262) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:190) ... 58
persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="Hoth-PersistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<non-jta-data-source>DefaultDS</non-jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL94Dialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.use_sql_comments" value="true" />
<property name="hibernate.max_fetch_depth" value="5" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.jdbc.batch_size" value="50" />
<property name="hibernate.jdbc.batch_versioned_data" value="true" />
<property name="hibernate.order_inserts" value="true" />
</properties>
</persistence-unit>
@Entity
@Table (name = "users")
@Getter @Setter @ToString @EqualsAndHashCode (of = "email")
public class User {
@Id
private String email;
@Column(name = "secret_hash")
private String secretHash;
@Column(name = "accessed_at")
private LocalDateTime accessedAt;
private String gender;
@Column(name = "birth_year")
private Integer birthYear;
@Column(name = "picture_name")
private String pictureName;
@Column(name = "picture_url")
private String pictureUrl;
private String nickname;
}