我有很多带有属性的bean,它们是从带有JPA 的数据库表中派生的。用户应能够输入任何列名和值作为字符串,应用程序应自动在其中一个 bean 中找到正确的成员。
我必须使用 JPA,否则我会使用一些 JDBC 元数据将所有列和值放入法线映射中。JPA可以做到这样的事情吗?它只需要从数据库到 bean 工作,我不想持久化更改。
如果这不起作用,我可以在运行时以某种方式以编程方式分析成员名称吗?
我有很多带有属性的bean,它们是从带有JPA 的数据库表中派生的。用户应能够输入任何列名和值作为字符串,应用程序应自动在其中一个 bean 中找到正确的成员。
我必须使用 JPA,否则我会使用一些 JDBC 元数据将所有列和值放入法线映射中。JPA可以做到这样的事情吗?它只需要从数据库到 bean 工作,我不想持久化更改。
如果这不起作用,我可以在运行时以某种方式以编程方式分析成员名称吗?
EntityManagerFactory 有一个getMetamodel()方法,它返回它的 MetaModel。从这个 MetaModel 中,您可以查询每个实体类的 MetaModel,并发现它的所有属性、它们的类型等。
如果 JPA 部分不起作用,您可以访问类的类成员(字段、方法),如下所示:
Field[] fs = YouClass.class.getDeclaredFields();
访问不同成员的详细信息在此链接上