我有一个表的列数是可变的(取决于客户), 所以我寻找一种方法来映射此表与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 –