我在调试模式下有一个可用的Java Play Framework应用程序,它使用Hibernate JPA来实现持久性。
当我尝试在生产环境中部署和运行应用程序时,我遇到了问题。我已经使用dist任务构建了应用程序,并将其部署到生产环境中。
当我在连接数据库的应用程序中运行任何服务并使用@NamedQueries @NamedQuery注释创建查询时,我在日志中收到以下错误:
play.api.UnexpectedException: Unexpected exception[CompletionException: java.lang.IllegalArgumentException: No query defined for that name [myq]]
相同的服务在调试环境中运行良好。
以下是包含注释的类中的代码:
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
...
@Entity
@Table(name = "user", catalog = "mydb")
@NamedQueries({
@NamedQuery(name = User.BY_USERNAME, query =
"select u from User u where u.username=:username")
})
public class User implements java.io.Serializable {
public static final String BY_USERNAME = "myq";
...
答案 0 :(得分:0)
更改导入。而不是:
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
使用以下内容:
import org.hibernate.annotations.NamedQueries;
import org.hibernate.annotations.NamedQuery;