Java org.hibernate.exception.sqlgrammareexception:无法执行查询

Java org.hibernate.exception.sqlgrammareexception:无法执行查询,java,hibernate,hibernate-mapping,playframework,Java,Hibernate,Hibernate Mapping,Playframework,我使用游戏框架!!但当我运行我的项目时,它会给我这个 org.hibernate.exception.sqlgrammareexception:无法执行查询 谁能帮我 这是我的模型: package models; import java.util.*; import javax.persistence.*; import play.db.jpa.*; import play.db.jpa.Model; @Entity @Table(name="GxkAccount") public clas

我使用游戏框架!!但当我运行我的项目时,它会给我这个

org.hibernate.exception.sqlgrammareexception:无法执行查询

谁能帮我

这是我的模型:

package models;
import java.util.*;
import javax.persistence.*;
import play.db.jpa.*;
import play.db.jpa.Model;

@Entity
@Table(name="GxkAccount")
public class GxkAccount extends Model {

    private String Account;
    private String Psw;

    public String getAccount() {
        return Account;
    }
    public void setAccount(String account) {
        Account = account;
    }
    public String getPsw() {
        return Psw;
    }
    public void setPsw(String psw) {
        Psw = psw;
    }

    public static List<GxkAccount> GetList()
    {
        List<GxkAccount> infoList=GxkAccount.findAll();
        return infoList;
    }


}
封装模型;
导入java.util.*;
导入javax.persistence.*;
导入play.db.jpa.*;
导入play.db.jpa.Model;
@实体
@表(name=“GxkAccount”)
公共类GxkAccount扩展模型{
私人字符串帐户;
私人字符串Psw;
公共字符串getAccount(){
返回帐户;
}
公共无效设置帐户(字符串帐户){
账户=账户;
}
公共字符串getPsw(){
返回Psw;
}
公共无效设置psw(字符串psw){
Psw=Psw;
}
公共静态列表GetList()
{
List infoList=GxkAccount.findAll();
返回信息列表;
}
}

您完全缺少类属性的映射注释


p.S.请尝试按照

操作,因为您完全缺少类属性的映射注释


p.S.请尝试使用mysql遵循

,我们也面临这类问题。我们在play framework
application.conf
中发现:

jpa.dialect=org.hibernate.dialect.PostgreSQLDialect
我们用

jpa.dialect=org.hibernate.dialect.MySqlDialect.

这就解决了问题。如果您面临此问题,可以尝试此配置设置。

使用mysql,我们也面临此类问题。我们在play framework
application.conf
中发现:

jpa.dialect=org.hibernate.dialect.PostgreSQLDialect
我们用

jpa.dialect=org.hibernate.dialect.MySqlDialect.

这就解决了问题。如果您面临此问题,您可以尝试此配置设置。

我们也面临同样的问题。我们在xml中创建,并在id列上创建
@GeneratedValue
。解决方案是删除
@GeneratedValue
注释并手动输入id值,同时jpa默认采用
long
,因此给出long值,例如
1l

要进行自动生成,请遵循另一条规则

与JPA相关的自动生成Id的问题解决如下:

修改Person.java模型类,使Id属性具有以下注释:

@Id
@TableGenerator(name="TABLE_GEN",table="T_GENERATOR",pkColumnName="GEN_KEY",pkColumnValue="TEST",valueColumnName="GEN_VALUE",initialValue=1,allocationSize=1)
@GeneratedValue(strategy=GenerationType.TABLE, generator="TABLE_GEN")
public Long Id;

这将在mysql模式中创建一个名为
T\u GNERATOR
的表,该表将跟踪Id的下一个值,而hibernate上的JPA知道如何检索该值。假设Id的初始值为1,并且在每次新插入时它都会增加1,从注释的属性可以明显看出这一点。

我们也面临同样的问题。我们在xml中创建,并在id列上创建
@GeneratedValue
。解决方案是删除
@GeneratedValue
注释并手动输入id值,同时jpa默认采用
long
,因此给出long值,例如
1l

要进行自动生成,请遵循另一条规则

与JPA相关的自动生成Id的问题解决如下:

修改Person.java模型类,使Id属性具有以下注释:

@Id
@TableGenerator(name="TABLE_GEN",table="T_GENERATOR",pkColumnName="GEN_KEY",pkColumnValue="TEST",valueColumnName="GEN_VALUE",initialValue=1,allocationSize=1)
@GeneratedValue(strategy=GenerationType.TABLE, generator="TABLE_GEN")
public Long Id;

这将在mysql模式中创建一个名为
T\u GNERATOR
的表,该表将跟踪Id的下一个值,而hibernate上的JPA知道如何检索该值。假设Id的初始值为1,并且在每次新插入时它都会增加1,从注释的属性可以明显看出这一点。

请共享完整的异常消息。如果您可以使用Hibernate生成的实际查询,那就太好了。请共享完整的异常消息。如果您可以使用Hibernate生成的实际查询,那就太好了。@niels:那么基本上需要生成的查询。@niels:那么基本上需要生成的查询。