0

JPAで使用したいこのDBテーブルがあります

CREATE TABLE translations (
id  SERIAL NOT NULL, 
KEY VARCHAR(255), 
LANGUAGE VARCHAR(255), 
TRANSLATION VARCHAR(255)
)

このエンティティを作成しました:

@Entity
@Table(name = "translations")
public class TranslationTestEntitie extends AbstractEntityWithId {

    private static final long serialVersionUID = 2029240552230401080L;

    @Column(name = "id", insertable=false, updatable=false)
    private long id;
    @Column(name = "key", insertable=false, updatable=false)
    private String key;
    @Column(name = "language", insertable=false, updatable=false)

    private String language;
    @Column(name = "translation", insertable=false, updatable=false)
    private String translation;

    public TranslationTestEntitie() {
    }

    // Getters and setters
    public Long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getLanguage() {
        return language;
    }

    public void setLanguage(String language) {
        this.language = language;
    }

    public String getTranslation() {
        return translation;
    }

    public void setTranslation(String translation) {
        this.translation = translation;
    }

}

このクエリを作成しようとするとSELECT c FROM Translations c WHERE c.Id = 70

このメッセージが表示されますThe abstract schema type 'Translations' is unknown.

DBテーブルによると、このエンティティは正しいですか。

PSこれは、データを取得するために使用するコードです:

public TData td;

    public class TData {

        private long id;
        private String key;
        private String language;
        private String translation;

        public TData() {
        };

        public TData(long id, String key, String language, String translation) {
            // super();
            this.id = id;
            this.key = key;
            this.language = language;
            this.translation = translation;
        }

        public long getId() {
            return id;
        }

        public void setId(long id) {
            this.id = id;
        }

        public String getKey() {
            return key;
        }

        public void setKey(String key) {
            this.key = key;
        }

        public String getLanguage() {
            return language;
        }

        public void setLanguage(String language) {
            this.language = language;
        }

        public String getTranslation() {
            return translation;
        }

        public void setTranslation(String translation) {
            this.translation = translation;
        }

    }

    public TData getDataObj() {
        return td;
    }

    @PostConstruct
    public void loadData() {

        td = new TData();

        String query = "SELECT c FROM Translations c WHERE c.id = 70";
        td = (TData) dao.jpqlQuerySingle(query);//(query);//jpqlQuery(query);

    }

しかし、私はまだ空のオブジェクトを取得しています。

4

2 に答える 2

2

translationsデータベース テーブルにマップされたエンティティの名前はTranslationTestEntitieです。

from TranslationTestEntitie cその後、ニーズに合うはずです。

于 2013-03-20T10:29:26.750 に答える
1

たぶん、あなたのテーブル名はTranslationsしかしではないからですtranslations

SELECT c FROM translations c WHERE c.id = 70

そして小文字のid。

于 2013-03-20T10:28:56.333 に答える