1

アプリケーション管理者が変更できるアプリケーション設定のモデルを作成したい。

モデルは、ebean マッピングを使用してデータベースに保存する必要があります。

package models;

import javax.persistence.Entity;

import play.db.ebean.Model;

@Entity
public class ApplicationSettings extends Model {
    public String applicationTitle;
    public String companyName;
}

ただし、ApplicationSettings のインスタンスは 1 つしかないため、2 列のテーブルを使用してデータベースに設定を格納したいと考えています。作成されたテーブルは次のようになります。

create table application_settings (
  setting_name          varchar(255),
  setting_value         varchar(255)
);

オブジェクトの *setting_name* 列の値は、 ApplicationSettingsのフィールド名に名前を付ける必要があり、フィールド値は *setting_value* 列から取得する必要があります。

play フレームワークでこれを達成する簡単な方法はありますか?

4

1 に答える 1

0

それをすぐにサポートする組み込みのメカニズムはないと思います。

あなたが求めていることを達成する最も簡単な方法は、次のようです。

Map<String, ApplicationSettings> map = Ebean.createQuery(ApplicationSettings.class).findMap("settingKey", String.class)
String value = map.get("myKey").settingValue

これが機能するには、データモデルは次のようになります

@Entity
public class ApplicationSettings extends Model {
    public String settingKey;
    public String settingValue;
}
于 2012-09-14T14:49:53.933 に答える