質問は少しばかげているかもしれないと思います-私は最初の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を拡張する以外に、どのようにエンティティを登録できるかを検出できません。