将模型的字段名称和值映射到表行而不是列

时间:2012-09-14 09:41:01

标签: playframework-2.0

我想为应用程序设置创建一个可以由应用程序管理员更改的模型。

应使用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实例,我想用2列表将数据存储在数据库中。创建的表应如下所示:

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

然后,应将* setting_name *列的对象值命名为 ApplicationSettings 中的字段名称,并且字段值应取自* setting_value *列。

有没有一种简单的方法可以通过播放框架实现这一目标?

1 个答案:

答案 0 :(得分: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;
}