我看到已经有了答案,但认为我们应该扩展。Querydsl 自动生成代表您的数据库对象的类。如果你有MyTable这样的表,对应的Querydsl对象会默认获取前缀“Q”(QMyTable)。要从该表中查询,您只需实例化 QMyTable 对象的一个实例,然后使用 querydsl 对该表进行操作(例如 mysqlquery.from(qmytableinstance).list(myfield) )。
Q 只是生成的 Querydsl 对象的默认名称前缀。在 Querydsl 对象生成期间,您可以使用 setNamePrefix() 方法告诉它使用您想要的任何命名前缀。以下是 JUnit 测试中使用“NOTQ”而不是“Q”的示例:
@Test
public void testQueryDslGenerateCode_example() {
Connection connection = this.getConnection();
MetaDataExporter ex = new MetaDataExporter();
ex.setPackageName(packageName);
ex.setTargetFolder(new File(targetFolder));
ex.setSchemaToPackage(true);
ex.setSchemaPattern(schemaName);
ex.setNamePrefix("NOTQ");
try {
ex.export(connection.getMetaData());
} catch (SQLException e) {
e.printStackTrace();
}
}
这个 JUnit 测试将生成所有前缀为“NOTQ”而不是“Q”的类。希望这会有所帮助。