0

質問は少しばかげているかもしれないと思います-私は最初のPlayプロジェクトに取り組んでいるので、ソフトウェアの概要を理解しようとまだ訓練中です;)

さて、私はテキストエリアを含むページを持っています。ユーザーはそこにテキストを入力して、標準のebeanデータベースに永続的に保存できる必要があります。しかし、保存は機能せず、理由がわかりません。

これは、データベースオブジェクトのクラス定義です。

public class Entry extends Model {
    @Required
    public String   text;   
    public String   studentName;
    @Id
    public long     id;
    public static   Finder<Long, Entry> finder = new Finder<Long, Entry>( Long.class, Entry.class);

    public static Entry getMe(Long id) {
        return finder.byId(id);
    }
    public static void saveMe(Entry toDataBase) {
        toDataBase.save();
    }
    // ....
 }

テキスト領域は次のとおりです。

@(entryForm: Form[Entry])
@import helper._
@main("xy") {

<h1>report for @entryForm("studentName")</h1>

    @form(routes.Application.storeReport()) {
        @textarea(entryForm("report:"))
        <input type="submit" value="Store Report">
    }
}

メソッドentryForm.bindFromRequest Application.storeReport()()。hasErrors()は常にtrueです。

(..3つの入力フィールドのどれに実際に入力したいかを伝えるために)に変更@textarea(entryForm("report:"))すると、PersistenceExceptionが発生します。@textarea(entryForm("text"))

「タイプ[classmodels.Entry]は登録済みエンティティではありませんか?使用するエンティティクラスを明示的にリストしない場合、Ebeanはクラスパスでそれらを検索します。エンティティがJarにある場合は、ebean.search.jarsを確認してください。 ebean.propertiesファイルのプロパティまたはServerConfig.addJar()を確認してください。] "

ToDoListのを参考にすると、play.db.ebean.Modelを拡張する以外に、どのようにエンティティを登録できるかを検出できません。

4

1 に答える 1

1

Entryクラスの@Entityアノテーションを忘れたと思います。

于 2012-10-12T06:30:46.567 に答える