package org.tests.compositekeys; import io.ebean.BaseTestCase; import io.ebean.Ebean; import io.ebean.EbeanServer; import io.ebean.Query; import org.tests.model.composite.RCustomer; import org.tests.model.composite.RCustomerKey; import org.tests.model.composite.ROrder; import org.tests.model.composite.ROrderPK; import org.junit.Assert; import org.junit.Test; import java.util.ArrayList; import java.util.List; public class TestCKeyIdInExpression extends BaseTestCase { @Test public void testDummy() { } //@Test public void notRanAuto_doInsert() { RCustomerKey customerKey = new RCustomerKey("compa", "coa"); RCustomer rCustomer = new RCustomer(); rCustomer.setKey(customerKey); rCustomer.setDescription("some foo for ms sql server"); Ebean.save(rCustomer); ROrderPK k0 = new ROrderPK("compa", 100); ROrder rOrder = new ROrder(); rOrder.setCustomer(rCustomer); rOrder.setOrderPK(k0); rOrder.setItem("Chair"); Ebean.save(rOrder); } //@Test public void notRanAutomatically() { //EbeanServer server = CreateIdExpandedFormServer.create(); EbeanServer server = Ebean.getServer(null); ROrderPK k0 = new ROrderPK("compa", 100); ROrderPK k1 = new ROrderPK("compa", 101); ROrderPK k2 = new ROrderPK("b", 105); ROrderPK k3 = new ROrderPK("c", 106); List<ROrderPK> keys = new ArrayList<>(); keys.add(k0); keys.add(k1); keys.add(k2); keys.add(k3); Query<ROrder> query = server.find(ROrder.class).where().idIn(keys).query(); query.findList(); String sql = query.getGeneratedSql(); Assert.assertTrue(sql.contains("(t0.company=? and t0.order_number=?) or")); Query<ROrder> query2 = server.find(ROrder.class).setId(k0); query2.findUnique(); sql = query2.getGeneratedSql(); Assert.assertTrue(sql.contains("t0.company = ? ")); Assert.assertTrue(sql.contains(" and t0.order_number = ?")); server.delete(ROrder.class, k0); server.delete(ROrder.class, keys); } }