0

コードを取得しました

public static List <Post> getPostForTopic(String topicName) {
    List <Post> list = find.where().eq("topic_name",topicName).findList();
    return list;
}

SQL の進化

# --- Created by Ebean DDL
# To stop Ebean DDL generation, remove this comment and start using Evolutions

# --- !Ups

create table post (
text                      varchar(255))
;

create table topic (
topic_name                varchar(255) not null,
constraint pk_topic primary key (topic_name))
;

create sequence topic_seq;




# --- !Downs

SET REFERENTIAL_INTEGRITY FALSE;

drop table if exists post;

drop table if exists topic;

SET REFERENTIAL_INTEGRITY TRUE;

drop sequence if exists topic_seq;

実行すると、実行例外があります:

[PersistenceException: Query threw SQLException:Столбец "TOPIC_NAME" не найден Column "TOPIC_NAME" not found; SQL statement: select t0.text c0 from post t0 where topic_name = ? [42122-158] Bind values:[null] Query was: select t0.text c0 from post t0 where topic_name = ? ] 

私は、h2 データベース コンソールで「Select * from topic」のようなクエリを入力すると、テーブル「TOPIC」がないという結果が得られました。間違いを見つけるのを手伝ってください

4

1 に答える 1

2

間違ったファインダーを使ったと思います。

次のようなもので変数を作成するに違いfindありません(実際には、主キーとして使用したタイプはわかりません):

 public static Finder<XXX,Post> find = new Finder<XXX,Post>(
    XXX.class, Post.class
  );

一方、次を使用する必要があります:

 public static Finder<String,Topic> find = new Finder<String,Topic>(
   String.class, Topic.class
 );
于 2013-01-14T21:28:22.463 に答える