使用Map的JPA通用实体

时间:2017-05-19 03:41:06

标签: jpa spring-boot entity

有没有办法使用Map实现JPA实体?扩展HashMap或包含散列图,即:。

@Entity
@Table(employee)
public class Employee {
    /* .... */
    void set(String columnName, Object columnValue) { /*...*/ }
    Object get(String columnName) { /*...*/ }
}

@RepositoryRestResource
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
}

这样,就不需要在Employee类中提供模型属性。基本上,无论在数据库中定义了哪些列,它都将是Employee类中的条目之类的属性。

Employee emp;
...
emp.get("name");
emp.get("id");

这样的事情可能吗?

1 个答案:

答案 0 :(得分:0)

虽然在vanilla JPA中不可行,但EclipseLink动态实体(https://wiki.eclipse.org/EclipseLink/Examples/JPA/Dynamic)可能就是你想要的。它允许以类似地图的方式处理实体。但是,不确定它是否足以满足您的使用需求。