没有实体的Java持久化

没有实体的Java持久化,java,jakarta-ee,persistence,Java,Jakarta Ee,Persistence,我正在开发一个JavaEE应用程序,数据库中几乎有1000多个表,现在我必须通过客户端的参数查询记录 通常,我会为每个表创建一个实体,并创建Dao和服务来执行查询 然而,我遇到两个问题: 1个表的数量 正如我所说的,1000多个表,每个表几乎有40多个列,逐个创建实体将是一场噩梦 2方案更新 即使我可以通过程序创建实体,数据的模式也可能在我无法控制的情况下发生变化 在我的应用程序中,只有读取操作与这些类型的数据相关,不需要更新、删除和创建 因此,我想知道以下解决方案是否可行: 1使用地图而不是P

我正在开发一个JavaEE应用程序,数据库中几乎有1000多个表,现在我必须通过客户端的参数查询记录

通常,我会为每个表创建一个实体,并创建Dao和服务来执行查询

然而,我遇到两个问题:

1个表的数量

正如我所说的,1000多个表,每个表几乎有40多个列,逐个创建实体将是一场噩梦

2方案更新

即使我可以通过程序创建实体,数据的模式也可能在我无法控制的情况下发生变化

在我的应用程序中,只有读取操作与这些类型的数据相关,不需要更新、删除和创建

因此,我想知道以下解决方案是否可行:

1使用地图而不是POJO

根本不创建POJO,使用本机映射包装列和值

2行映射

当使用Hibernate或Spring JdbcTemplate或其他工具进行查询时,请使用映射器将每一行映射到映射中的一个条目

如果是,我将使用
ResultMetaData
检测列名、类型、值:

ResultMetaData rmd=rs.getMetaData();

for(int i=0;i<rmd.getColumnCount();i++){
    Type t=rmd.getType(i)
    if(t==....){
        ...
    }else if(t=...){
        ...
    }
}
ResultMetaData rmd=rs.getMetaData();

对于(int i=0;iy)您的目标是类似查询生成器的应用程序?您的目标是类似查询生成器的应用程序?