例如,假设我们有一个DB表这样的人:
|---------------|
|Name|Age|Height|
|---------------|
|Bob | 34| 167|
|Jane| 76| 181|
|Joe | 55| 176|
|---------------|
在Java中使用ORM框架(Hibernate,Spring Data JPA等),我可以将此表映射到这样的类:
public class Person {
private Map<String, Object> attributes;
// No other fields!
..
}
例如表的第一行将由Person对象表示, attributes 字段等于:
{{"Name" -> "Bob"}, {"Age" -> 34}, {"Height" -> 167}}
如果可能的话,我该怎么做呢?非常感谢!
答案 0 :(得分:0)
您可以使用反射编写自己的实用程序,通过Java Properties(或getter)编写,并为您构建该地图。
答案 1 :(得分:0)
我认为你无法做到这一点。一种选择是使用constructor expressions来拥有一个&#34;视图对象&#34;使用属性映射,并从查询返回,但您仍然必须将普通实体映射到db表。在这种情况下,您的查询看起来像这样
select new my.package.PersonVO(p) from Person p...
你只需要在PersonVO中有一个合适的构造函数
public PersonVO(Person person) {
attributes.put("name", person.getName());
...
}