Java org.hibernate.exception.sqlgrammareexception:无法执行查询
我使用游戏框架!!但当我运行我的项目时,它会给我这个 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
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:那么基本上需要生成的查询。