Package com.avaje.tests.inheritance

Source Code of com.avaje.tests.inheritance.TestInheritanceRawSql

package com.avaje.tests.inheritance;

import java.util.List;

import org.junit.Assert;
import org.junit.Test;

import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.RawSql;
import com.avaje.ebean.RawSqlBuilder;
import com.avaje.tests.model.basic.Truck;
import com.avaje.tests.model.basic.Vehicle;

public class TestInheritanceRawSql extends BaseTestCase {

  @Test
  public void test() {
   
    Truck truck = new Truck();
    truck.setCapacity(50D);
    truck.setLicenseNumber("ASB23");
   
    Ebean.save(truck);
   
   
    String sql = "select dtype, id, license_number from vehicle where id = :id";
    RawSqlBuilder rawSqlBuilder = RawSqlBuilder.parse(sql);
   
    RawSql rawSql = rawSqlBuilder.create();
   
    List<Vehicle> list = Ebean.find(Vehicle.class)
        .setRawSql(rawSql)
        .setParameter("id", truck.getId())
        .findList();
   
    Assert.assertEquals(1, list.size());
   
    Vehicle vehicle2 = list.get(0);
    Assert.assertTrue(vehicle2 instanceof Truck);

    Truck truck2 = (Truck)vehicle2;
    Assert.assertEquals("ASB23", truck2.getLicenseNumber());
   
    // invoke lazy loading and set the capacity
    truck2.setCapacity(30D);
   
    // and now save
    Ebean.save(truck2);
  }
 
}
TOP

Related Classes of com.avaje.tests.inheritance.TestInheritanceRawSql

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.