org.hibernate.exception.SQLGrammarException: не удалось выполнить запрос - PullRequest
1 голос
/ 03 ноября 2010

Я использую игровые рамки !!Но когда я запускаю свой проект, он дает мне

org.hibernate.exception.SQLGrammarException: не удалось выполнить запрос

, кто мне может помочь?

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;
    }


}

Ответы [ 3 ]

4 голосов
/ 03 ноября 2010

Вы полностью пропускаете аннотации сопоставления для свойств вашего класса.

PS Пожалуйста, попробуйте следовать соглашениям об именах Java

1 голос
/ 17 ноября 2011

Используя mysql, мы также столкнулись с этим типом проблемы.Мы нашли в игровом фреймворке application.conf:

jpa.dialect=org.hibernate.dialect.PostgreSQLDialect

, мы заменили это на

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

Это решило проблему.Если вы столкнулись с этой проблемой, попробуйте этот параметр конфигурации.

0 голосов
/ 25 января 2015

Мы также столкнулись с той же проблемой. Мы создавали в xml и @GeneratedValue в столбце id. Разрешение - удалить аннотацию @GeneratedValue и поставить значение идентификатора вручную, также jpa принимает long по умолчанию, поэтому задайте длинное значение, например 1l.

Для автоматической генерации следуйте другому правилу.

Проблема вокруг автоматически сгенерированного идентификатора, связанного с JPA, решена, как показано ниже:

Измените класс модели 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_GNERATOR, которая будет отслеживать следующее значение для Id, а JPA через hibernate знает, как получить это значение. Предполагается, что начальное значение Id равно 1, и оно увеличивается на 1 при каждой новой вставке в него, что очевидно из атрибутов аннотации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...