Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以通用(间接)方式枚举和更改持久字段_Java_Hibernate_Persistence_Metadata_Hibernate 4.x - Fatal编程技术网

Java 以通用(间接)方式枚举和更改持久字段

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

在Hibernate4.x中,有没有办法在运行时获取持久字段列表?持久字段不是指DB列名,而是POJO字段名或属性名(取决于特定实体的访问类型)。另外,是否有一种方法可以在字段名为字符串的情况下获取/设置持久字段的值,而不管它是字段名还是属性名?

似乎我需要的所有内容(以及更多内容)都包含在
ClassMetadata
class()中


我可以通过使用
SessionFactory.getClassMetadata(entityClass)
获取特定类的元数据,然后使用
metadata.getPropertyNames()
等等。

一般来说,询问您真正想要做什么会让您更幸运。听起来你已经决定了一个策略,并且正在尝试确定一种方法来实现它。也许你应该决定一个不同的策略?你想做什么?@colinmoreli:我有一个对象图爬虫,它给从客户端接收到的反序列化对象定位一个对应的持久对象,并逐字段深度复制值。在复制每个字段之前,检查当前用户是否有足够的权限修改当前字段等。此外,如果修改了某些实体的某些字段,则会触发与其他系统的复制或其他操作。。。所有这些都是外部定义的(即非硬编码)。我正在将现有的JDO/Datanucleus解决方案移植到Hibernate。。。