package cbe.fetching; import java.util.List; import org.apache.cayenne.access.DataContext; import org.apache.cayenne.query.SelectQuery; import cbe.fetching.model.Contractor; import cbe.fetching.model.Designation; import cbe.fetching.model.Person; import cbe.fetching.utilities.Populator; /** * Cayenne By Example - https://github.com/mrg/cbe * * @author mrg */ public class SingleTableInheritance { public static void main(String[] arguments) { // Populate the database. Populator.populateDatabase(); // Create a new DataContext for the queries. DataContext dataContext = DataContext.createDataContext(); Person person = dataContext.newObject(Person.class); Contractor contractor = dataContext.newObject(Contractor.class); person.setFirstName("John"); person.setLastName("Doe"); person.setDesignation(contractor); dataContext.commitChanges(); SelectQuery query = new SelectQuery(Person.class); // // List<Person> people = dataContext.performQuery(query); // // person = people.get(0); // // System.out.println(person); // System.out.println(person.getDesignation()); // System.out.println(person.getDesignation().getClass()); query = new SelectQuery(Designation.class); List<Designation> designations = dataContext.performQuery(query); Designation designation = designations.get(0); System.out.println(designation); System.out.println(designation.getPerson()); System.out.println(designation.getClass()); } }