Database 动态使用JPA EntityManager而不创建实体

Database 动态使用JPA EntityManager而不创建实体,database,jpa,jdbc,Database,Jpa,Jdbc,我需要动态连接到不同类型的数据源(例如MySQL、Oracle等),并使用CriteriaBuilder等执行复杂查询。因为这些数据库可以有不同的模式;我不能拥有它们的实体,但在运行时我拥有表名、列、数据库类型等的字符串值。我是否可以在没有定义实体的情况下使用JPA动态创建特定于数据库的查询 欢迎其他想法。为什么在将类持久化到不同的模式时不能有实体?您可以轻松地为每个模式创建一个orm.xmlenough@NeilStockton这些数据库是用户提供的,我不知道它们的模式。在问题中,我将试图使它

我需要动态连接到不同类型的
数据源
(例如MySQL、Oracle等),并使用
CriteriaBuilder
等执行复杂查询。因为这些数据库可以有不同的模式;我不能拥有它们的实体,但在运行时我拥有表名、列、数据库类型等的字符串值。我是否可以在没有定义实体的情况下使用JPA动态创建特定于数据库的查询


欢迎其他想法。

为什么在将类持久化到不同的模式时不能有实体?您可以轻松地为每个模式创建一个orm.xmlenough@NeilStockton这些数据库是用户提供的,我不知道它们的模式。在问题中,我将试图使它更明显,当将JPA与任何模式(无论是用户提供的还是开发人员提供的)一起使用时,您仍然必须在类和表之间进行映射。这就是可以使用orm.xml的地方。如果你不想这么做,那就用JDBC吧@NeilStockton没有实体类。使用JDBC意味着我必须为我想要支持的每个数据库实现SQL。我宁愿让一些库/框架为我创建特定于数据库的SQL。JPA需要实体类,你没有实体类。结论:您不能使用JPA。再简单不过了