2012-09-14 39 views
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的單個實例,我想用一個2列的表格存儲在數據庫中的設置。創建的表應該是這個樣子:

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

的* SETTING_NAME *列的對象的值,然後應該命名爲字段名稱的applicationSettings和字段值應該從* setting_value採取*柱。

有沒有簡單的方法來實現這個與玩框架?

回答

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; 
} 
+0

謝謝您的回答,但建議的解決方案正是我想要避免的。我希望能夠在scala模板中通過名稱使用設置名稱(例如'@ ApplicationSettings.applicationTitle')並使用基於行的實體映射。我想我會堅持默認的基於列的映射,直到現在。 – wuschi

相關問題