我有一個表的列數是可變的(取決於客戶), 所以我尋找一種方法來映射此表與java對象使用JPA /休眠或其他JPA /休眠與動態對象模型
我不能使用POJO,因爲它限於一個穩定的表,所以我想使用Java對象這樣
class MyObject {
int id;
Map<String, Object> fields = new Map<String, Object>();
public void setId(int id) {
this.id = id;
}
public void setField(String key, Object value) {
fields.put(key, value);
}
}
表用於存儲爲MyObject:
TABLE MYTABLE (
ID INTEGER,
FIELD1 VARCHAR,
FIELD2 DATE,
FIELD3 INTEGER
)
MyObject myObject = new MyObject();
myObject.setId(id);
myObject.setField("FIELD1" , "hello world");
myObject.setField("FIELD2" , new Date());
myObject.setField("FIELD3" , 21)
Action to save myObject in db;
當然並有可能查詢
如果您不知道自己的模式。你應該去Nosql。例如。 Mongo – cody123
感謝您的回答,但我使用Relationale數據庫(現在是sqlserver)的約束 – OliDem
請參閱動態模型http://docs.jboss.org/hibernate/core/3.3/reference/en/html/persistent-classes .html#persistent-classes-dynamicmodels –