mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#2593 - Tidy SqlTreeBuilder to not add duplicate BeanProperties
This commit is contained in:
@@ -5,6 +5,7 @@ import io.ebean.DB;
|
||||
import io.ebean.SqlRow;
|
||||
import io.ebean.bean.EntityBean;
|
||||
import io.ebean.bean.EntityBeanIntercept;
|
||||
import io.ebean.test.LoggedSql;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -142,13 +143,16 @@ public class TestNoFk extends BaseTestCase {
|
||||
assertTrue(ownerEbi.isReference());
|
||||
assertTrue(ownerEbi.isPartial());
|
||||
assertTrue(ownerEbi.isLazyLoadFailure());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEagerLoadFile() {
|
||||
LoggedSql.start();
|
||||
List<EFileNoFk> files = DB.find(EFileNoFk.class).fetch("owner").findList();
|
||||
assertThat(files).hasSize(2);
|
||||
List<String> sql = LoggedSql.stop();
|
||||
assertThat(sql).hasSize(1);
|
||||
assertThat(sql.get(0)).contains("select t0.file_name, t0.owner_user_id, t0.owner_soft_del_user_id, t1.user_id, t1.user_name from efile_no_fk t0 left join euser_no_fk t1 on t1.user_id = t0.owner_user_id");
|
||||
|
||||
EFileNoFk file1 = files.get(0);
|
||||
EFileNoFk file2 = files.get(1);
|
||||
@@ -175,7 +179,6 @@ public class TestNoFk extends BaseTestCase {
|
||||
assertTrue(ownerEbi.isReference());
|
||||
assertTrue(ownerEbi.isPartial());
|
||||
assertTrue(ownerEbi.isLazyLoadFailure());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -259,8 +262,12 @@ public class TestNoFk extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void testEagerLoadFileSoftDel() {
|
||||
LoggedSql.start();
|
||||
List<EFileNoFk> files = DB.find(EFileNoFk.class).fetch("ownerSoftDel").findList();
|
||||
assertThat(files).hasSize(2);
|
||||
List<String> sql = LoggedSql.stop();
|
||||
assertThat(sql).hasSize(1);
|
||||
assertThat(sql.get(0)).contains("select t0.file_name, t0.owner_user_id, t0.owner_soft_del_user_id, t1.user_id, t1.user_name, t1.user_id is null from efile_no_fk t0 left join euser_no_fk_soft_del t1 on t1.user_id = t0.owner_soft_del_user_id");
|
||||
|
||||
EFileNoFk file1 = files.get(0);
|
||||
EFileNoFk file2 = files.get(1);
|
||||
|
||||
@@ -14,7 +14,6 @@ class TestQueryMultiJoinFetchPath extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
void test() {
|
||||
|
||||
HCustomer c1 = new HCustomer("c1", "c1");
|
||||
DB.save(c1);
|
||||
|
||||
@@ -60,9 +59,9 @@ class TestQueryMultiJoinFetchPath extends BaseTestCase {
|
||||
|
||||
assertThat(accesses).hasSize(2);
|
||||
if (isH2()) {
|
||||
assertThat(query.getGeneratedSql()).isEqualTo("select t0.dtype, t0.id, t0.accessor_id, t0.principal_id, t2.dtype, t0.access_account_number, t0.accessor_id, t2.dtype, t0.access_account_number, t1.cid, t1.name, t2.dtype, t2.account_number from haccess t0 left join hcustomer t1 on t1.cid = t0.accessor_id left join haccount t2 on t2.account_number = t0.access_account_number and t2.dtype = 'B' left join hcustomer t3 on t3.cid = t0.principal_id where t1.status = ? and t3.status = ? and t0.id in (?,?,?,?,?)");
|
||||
assertThat(query.getGeneratedSql()).isEqualTo("select t0.dtype, t0.id, t0.accessor_id, t0.principal_id, t2.dtype, t0.access_account_number, t1.cid, t1.name, t2.dtype, t2.account_number from haccess t0 left join hcustomer t1 on t1.cid = t0.accessor_id left join haccount t2 on t2.account_number = t0.access_account_number and t2.dtype = 'B' left join hcustomer t3 on t3.cid = t0.principal_id where t1.status = ? and t3.status = ? and t0.id in (?,?,?,?,?)");
|
||||
} else {
|
||||
assertThat(query.getGeneratedSql()).contains("select t0.dtype, t0.id, t0.accessor_id, t0.principal_id, t2.dtype, t0.access_account_number, t0.accessor_id, t2.dtype, t0.access_account_number, t1.cid, t1.name, t2.dtype, t2.account_number from haccess t0 left join hcustomer t1 on t1.cid = t0.accessor_id left join haccount t2 on t2.account_number = t0.access_account_number and t2.dtype = 'B' left join hcustomer t3 on t3.cid = t0.principal_id where t1.status = ? and t3.status = ? and t0.id ");
|
||||
assertThat(query.getGeneratedSql()).contains("select t0.dtype, t0.id, t0.accessor_id, t0.principal_id, t2.dtype, t0.access_account_number, t1.cid, t1.name, t2.dtype, t2.account_number from haccess t0 left join hcustomer t1 on t1.cid = t0.accessor_id left join haccount t2 on t2.account_number = t0.access_account_number and t2.dtype = 'B' left join hcustomer t3 on t3.cid = t0.principal_id where t1.status = ? and t3.status = ? and t0.id ");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user