我正在使用JPA2(Hibernate 4)并且有一堆@Entity类,我的PK使用@Id定义。我如何以编程方式检索每个实体类的PK的字段名?
这样做的商业案例是我想使用Spring的BeanUtils.copyProperties方法复制实体对象,但是要确保在复制时忽略我的实体的id字段。
有没有办法找到这些信息? JPA是否提供此信息?我意识到我可以使用反射来完成每个课程,但希望有一个更简单的解决方案。我查看了扫描类的PropertyDescriptor
,但似乎无法在PropertyDescriptor上找到任何可以给我注释属性的方法。
答案 0 :(得分:1)
试试这个:
@PersistenceUnit
private EntityManagerFactory emf;
Metamodel metamodel = emf.getMetamodel();
metamodel.entity(MyEntity.class).getId();