因此,我希望从一个JPA查询返回多个对象,该查询还允许分页,这样我只能返回它返回的前10个对象。
JPA:返回多个实体的查询
在属性=值的表blah中作为select blah_0.id,blah_0.peropty进入,但随后转换为select*from(select blah_0.id,blah_0.peropty from表blah中属性=值),其中rownum>=10
protected SqlStatementWrapper executeQueryStatement(
String sqlStatement,
QueryParameters queryParameters,
boolean scroll,
List<AfterLoadAction> afterLoadActions,
SharedSessionContractImplementor session) throws SQLException {
// Processing query filters.
queryParameters.processFilters( sqlStatement, session );
// Applying LIMIT clause.
final LimitHandler limitHandler = getLimitHandler(
queryParameters.getRowSelection()
);
String sql = limitHandler.processSql( queryParameters.getFilteredSQL(), queryParameters.getRowSelection() );
// Adding locks and comments.
sql = preprocessSQL( sql, queryParameters, getFactory().getDialect(), afterLoadActions );
final PreparedStatement st = prepareQueryStatement( sql, queryParameters, limitHandler, scroll, session );
return new SqlStatementWrapper(
st, getResultSet(
st,
queryParameters.getRowSelection(),
limitHandler,
queryParameters.hasAutoDiscoverScalarTypes(),
session
)
);
}
也许创造一种新的方言?我似乎无法处理hibernate供应商适配器,因为它只是转到Oracle。
我需要设置MySQL5Dialect,以生成正确的查询。总是简单的配置。
LocalContainerEntityManagerFactoryBean lcemfb = EntityManagerFactory(merlinDataSource(),
new String[]{"packages.to.be.scaned"});
Properties props = new Properties();
props.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
props.setProperty("hibernate.show_sql", String.valueOf(showQueies));
lcemfb.setJpaProperties(props);
Hibernate createalias()方法用于创建连接。当我调用s.iterator()方法时,hibernate是否正在生成另一个select查询以获取子记录?根据我的理解,它生成一个单选查询,以使用join获取父记录和子记录。 映射文件:
问题内容: 我正在运行的查询如下,但是出现此错误: #1054-‘IN / ALL / ANY子查询’中的未知列’guaranteed_postcode’ 我的问题是:为什么我不能在同一数据库查询的where子句中使用伪列? 问题答案: 您只能在GROUP BY,ORDER BY或HAVING子句中使用列别名。 标准SQL不允许您在WHERE子句中引用列别名。之所以施加此限制,是因为执行WHERE
我有两个多对多映射的类:用户和主题。我想做的是得到所有的主题谁有提供的用户。有时(这是我最奇怪的部分)它会给我带来这样的错误: com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception:您的SQL语法中有一个错误;请查看与您的MySQL服务器版本相对应的手册,以便在第1行'))'附近使用正确的语法 返回的查询是: 我在这里漏掉了什么?完整的
我在Spring-Boot启用JPA的项目中有以下相关的JPA注释类(所有Groovy代码): 当我尝试执行以下JPA查询时: 生成的SQL语句似乎没有字符表的别名或appares_in的列名: 生成以下SQL: 非常感谢任何帮助。
问题内容: 我对sql中的别名有疑问和疑问。如果我想在同一查询中使用别名,可以使用它。例如:考虑表名xyz与列a和b 这有可能吗? 问题答案: 您是在谈论给查询中的表达式赋予标识符,然后在查询的其他部分重用该标识符吗? 在Microsoft SQL Server中这是不可能的,而我几乎所有的SQL经验都仅限于此。但是您可以执行以下操作。 显然,该示例并不是特别有用,但是如果您在多个地方使用该表达式
这个问题可能有答案……但对于使用postgresql数据库的openbravo来说并没有答案。 我有openbravo 3.0框架。在我的窗口中,我有两个日期字段,即fromdate和todate。要求是我必须编写一个hql where子句来根据当前日期过滤记录。日期字段是没有时区的时间戳。 意思是fromdate 和迄今为止 我浏览了这个链接,将hql where子句编写为 当我打开此窗口时,我