mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-09-25 11:32:07 +00:00
Fix SELF of QueryBuilder, QueryBean, IQueryBean for fluid use
Currently, the SELF response type of QueryBuilder returns as Object when really we want it to return the SELF generic type of QueryBuilder, QueryBean, IQueryBean etc Note that this change requires an updated ebean-agent
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
package org.querytest;
|
||||
|
||||
import io.ebean.QueryBuilder;
|
||||
import io.ebean.QueryBuilderProjection;
|
||||
import io.ebean.typequery.IQueryBean;
|
||||
import io.ebean.typequery.QueryBean;
|
||||
import org.example.domain.Customer;
|
||||
import org.example.domain.query.QCustomer;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -46,4 +50,29 @@ class QueryAlsoIfTest {
|
||||
q.findList();
|
||||
assertThat(q.getGeneratedSql()).isEqualTo("select /* QueryAlsoIfTest.notApply */ t0.id, t0.name from be_customer t0 where t0.name is not null");
|
||||
}
|
||||
|
||||
@Test
|
||||
void queryBuilders_expect_fluidUseOfSELF() {
|
||||
var q = new QCustomer();
|
||||
checkQueryBean(q);
|
||||
checkIQueryBean(q);
|
||||
checkQueryBuilder(q);
|
||||
checkQueryBuilderProjection(q);
|
||||
}
|
||||
|
||||
private void checkQueryBean(QueryBean<?, ?> queryBean) {
|
||||
queryBean.setFirstRow(10).setMaxRows(10);
|
||||
}
|
||||
|
||||
private void checkIQueryBean(IQueryBean<?, ?> iQueryBean) {
|
||||
iQueryBean.setFirstRow(10).setMaxRows(20);
|
||||
}
|
||||
|
||||
private void checkQueryBuilderProjection(QueryBuilderProjection<?, ?> queryBuilder) {
|
||||
queryBuilder.fetch("a").fetch("b");
|
||||
}
|
||||
|
||||
private void checkQueryBuilder(QueryBuilder<?,?> queryBuilder) {
|
||||
queryBuilder.setFirstRow(10).setMaxRows(10);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user