首页 > 解决方案 > Querydsl-sql 用 schema 指定表名

问题描述

我想实现以下目标:

我想querydsl-jpaquerydsl-sql旁边一起使用。SQL 版本,用于我不能将 jpa 和 JPA 用于所有其他事情的情况。为了避免在构建时决定在哪里连接应用程序,我想将 SQL 类提交到存储库中(因此不需要将构建连接到数据库)。

我不能使用 jpa 的用法最少,因此我想隐式指定我想生成QS类的表(QS 是我为 Querydsl-sql 类选择的前缀,Q 是 Querydsl-jpa 类的前缀) .

我在文档中发现可以使用tableNamePattern. 我正在配置querydsl-maven-plugin这样的(该插件只能用于特定的 Maven 配置文件,所以当我不指定此配置文件时,应用程序应该能够在没有与数据库的任何连接的情况下构建,它应该只使用提交的生成类)。

                <configuration>
                    <jdbcDriver>org.postgresql.Driver</jdbcDriver>
                    <jdbcUrl>jdbc:postgresql://localhost:5432/db</jdbcUrl>
                    <jdbcUser>db</jdbcUser>
                    <jdbcPassword>pw</jdbcPassword>
                    <packageName>querydsl</packageName>
                    <targetFolder>querydsl</targetFolder>
                    <namePrefix>QS</namePrefix>
                    <nameSuffix>Bo</nameSuffix>
                    <tableNamePattern>table_name,another_table</tableNamePattern>
                    <sourceFolder/>
                </configuration>

但。我的数据库中有 2 个模式。让我们命名它publicinternal

我的问题是:如何在配置中指定表的架构tableNamePattern 如果我只有公共版本table_name,它会生成一个 QsTableNameBo 类。但是,如果两个模式中有 2 个同名的表,我想明确地说,只从公共生成 QS 类。

我试过类似的东西,public.table_name但插件没有产生任何输出。

标签: mavenquerydsl

解决方案


推荐阅读