Java 以通用(间接)方式枚举和更改持久字段
在Hibernate4.x中,有没有办法在运行时获取持久字段列表?持久字段不是指DB列名,而是POJO字段名或属性名(取决于特定实体的访问类型)。另外,是否有一种方法可以在字段名为字符串的情况下获取/设置持久字段的值,而不管它是字段名还是属性名?似乎我需要的所有内容(以及更多内容)都包含在Java 以通用(间接)方式枚举和更改持久字段,java,hibernate,persistence,metadata,hibernate-4.x,Java,Hibernate,Persistence,Metadata,Hibernate 4.x,在Hibernate4.x中,有没有办法在运行时获取持久字段列表?持久字段不是指DB列名,而是POJO字段名或属性名(取决于特定实体的访问类型)。另外,是否有一种方法可以在字段名为字符串的情况下获取/设置持久字段的值,而不管它是字段名还是属性名?似乎我需要的所有内容(以及更多内容)都包含在ClassMetadataclass()中 我可以通过使用SessionFactory.getClassMetadata(entityClass)获取特定类的元数据,然后使用metadata.getProper
ClassMetadata
class()中
我可以通过使用
SessionFactory.getClassMetadata(entityClass)
获取特定类的元数据,然后使用metadata.getPropertyNames()
等等。一般来说,询问您真正想要做什么会让您更幸运。听起来你已经决定了一个策略,并且正在尝试确定一种方法来实现它。也许你应该决定一个不同的策略?你想做什么?@colinmoreli:我有一个对象图爬虫,它给从客户端接收到的反序列化对象定位一个对应的持久对象,并逐字段深度复制值。在复制每个字段之前,检查当前用户是否有足够的权限修改当前字段等。此外,如果修改了某些实体的某些字段,则会触发与其他系统的复制或其他操作。。。所有这些都是外部定义的(即非硬编码)。我正在将现有的JDO/Datanucleus解决方案移植到Hibernate。。。