gpt4 book ai didi

java - 结合 Querydsl-jpa 和 querydsl-sql 以及代码生成

转载 作者:行者123 更新时间:2023-12-02 10:24:45 26 4
gpt4 key购买 nike

事情是这样的:

  1. 我一直在使用querydsl-jpa在我的项目中,代码生成从来都不是问题。我在maven中使用这个插件:

       <plugin>
    <groupId>com.mysema.maven</groupId>
    <artifactId>maven-apt-plugin</artifactId>
    <version>1.0</version>
    <executions>
    <execution>
    <phase>generate-sources</phase>
    <goals>
    <goal>process</goal>
    </goals>
    <configuration>
    <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
    <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
    </configuration>
    </execution>
    </executions>
    </plugin>
  2. 现在,我还需要使用 querydsl-sql显然,我无法使用 Q -由 com.querydsl.apt.jpa.JPAAnnotationProcessor 创建的生成类。这是 maven 中的插件:

        <plugin>
    <groupId>com.querydsl</groupId>
    <artifactId>querydsl-maven-plugin</artifactId>
    <version>4.2.1</version>
    <executions>
    <execution>
    <goals>
    <goal>export</goal>
    </goals>
    </execution>
    </executions>
    <configuration>
    <jdbcDriver>com.mysql.cj.jdbc.Driver</jdbcDriver>
    <jdbcUrl>jdbc:mysql://localhost:3306/mydatabase</jdbcUrl>
    <jdbcUser>root</jdbcUser>
    <jdbcPassword></jdbcPassword>
    <packageName>com.myproject.domain</packageName>
    <targetFolder>${project.basedir}/target/generated-sources/java</targetFolder>
    </configuration>
    <dependencies>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.13</version>
    </dependency>
    </dependencies>
    </plugin>

挑战

  1. 上面的第二个插件生成 Q -我的 DBMS (MySql) 中所有模式的类,而我已指定要生成的模式 Q -来自的类(class)。

  2. 由于我不想在 git 中存储敏感信息,因此如何从文件中指定用户名、密码和 jdbcUrl存储库。

最佳答案

这是我的解决方案:

  1. 对于挑战一,我还没有找到解决方案本身,而是找到了某种解决方法。我在 DBMS (MySql) 中创建了一个用户,该用户对我感兴趣的单个架构具有权限。这样,用户将无法生成 Q -其他模式的类。所以问题一“解决了”。

尽管我仍然相信在插件中应该能够指定要生成的模式。有趣的是<schemaPattern></schemaPattern>正如 @Rober Bain 所建议的,它也在 querydsl-sql 中文档不起作用。

  • 对于挑战二,首先您需要创建一个属性文件,例如 dev.properties以及所需的内容

    jdbc-url=jdbc:mysql://localhost:3306/myschema?nullNamePatternMatchesAll=true

    jdbc-user=my_user

    jdbc-password=my_password

    然后,包含以下properties-maven-plugin

        <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-2</version>
    <executions>
    <execution>
    <phase>initialize</phase>
    <goals>
    <goal>read-project-properties</goal>
    </goals>
    <configuration>
    <files>
    <file>dev.properties</file> // Reference to properties file
    </files>
    </configuration>
    </execution>
    </executions>
    </plugin>
  • ...以及在您的 query-dsl 插件中...

            <plugin>
    <groupId>com.querydsl</groupId>
    <artifactId>querydsl-maven-plugin</artifactId>
    <version>4.2.1</version>
    <executions>
    <execution>
    <goals>
    <goal>export</goal>
    </goals>
    </execution>
    </executions>
    <configuration>
    <jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver>
    <jdbcUrl>${jdbc-url}</jdbcUrl>
    <jdbcUser>${jdbc-user}</jdbcUser>
    <jdbcPassword>${jdbc-password}</jdbcPassword>
    <packageName>com.myproject.domain</packageName>
    <targetFolder>${project.basedir}/target/generated-sources/java</targetFolder>
    </configuration>
    <dependencies>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.6</version>
    </dependency>
    </dependencies>
    </plugin>

    查看此链接以获取更多信息 Read pom.xml configurations from properties file

    由于上述链接已关闭,请使用 Wayback Online查看原始网页。

    这是内容的快照enter image description here

    以及延续

    enter image description here

    关于java - 结合 Querydsl-jpa 和 querydsl-sql 以及代码生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54049598/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com