A Comparison of Proxy Classes and Dynamic API¶
The following code samples are based on the OData Sample Service.
Getting an Entity List¶
Proxy Classes for Query¶
void entityListExample() {
DataQuery query = new DataQuery()
.select(Customer.customerID, Customer.city, Customer.country)
.orderBy(Customer.country);
List<Customer> customers = espmContainer.getCustomers(query);
for (Customer customer : customers) {
this.showCustomer(customer);
}
}
fun entityListExample() {
val query = DataQuery()
.select(Customer.customerID, Customer.city, Customer.country)
.orderBy(Customer.country)
val customers = espmContainer.getCustomers(query)
for (customer in customers) {
this.showCustomer(customer)
}
}
Dynamic API for Query¶
void entityListExample() {
EntitySet s_customers = espmContainer.getEntitySet("Customers");
EntityType t_customer = s_customers.getEntityType();
Property p_customerID = t_customer.getProperty("CustomerID");
Property p_city = t_customer.getProperty("City");
Property p_country = t_customer.getProperty("Country");
DataQuery query = new DataQuery()
.select(p_customerID, p_city, p_country)
.from(s_customers)
.orderBy(p_country);
EntityValueList customers = espmContainer.executeQuery(query).getEntityList();
for (EntityValue customer : customers) {
this.showCustomer(customer);
}
}
fun entityListExample() {
val s_customers = espmContainer.getEntitySet("Customers")
val t_customer = s_customers.entityType
val p_customerID = t_customer.getProperty("CustomerID")
val p_city = t_customer.getProperty("City")
val p_country = t_customer.getProperty("Country")
val query = DataQuery()
.select(p_customerID, p_city, p_country)
.from(s_customers)
.orderBy(p_country)
val customers = espmContainer.executeQuery(query).entityList
for (customer in customers) {
this.showCustomer(customer)
}
}
Creating an Entity¶
Proxy Classes for Creation¶
void createEntityExample() {
Customer customer = new Customer();
customer.setCustomerID(GuidValue.random().toString());
customer.setCity("London");
customer.setCountry("GB");
espmContainer.createEntity(customer);
}
fun createEntityExample() {
val customer = Customer()
customer.customerID = GuidValue.random().toString()
customer.city = "London"
customer.country = "GB"
espmContainer.createEntity(customer)
}
Dynamic API for Creation¶
void createEntityExample() {
EntitySet s_customers = espmContainer.getEntitySet("Customers");
EntityType t_customer = s_customers.getEntityType();
Property p_customerID = t_customer.getProperty("CustomerID");
Property p_city = t_customer.getProperty("City");
Property p_country = t_customer.getProperty("Country");
EntityValue customer = EntityValue.ofType(t_customer);
p_customerID.setString(customer, GuidValue.random().toString());
p_city.setString(customer, "London");
p_country.setString(customer, "GB");
espmContainer.createEntity(customer);
}
fun createEntityExample() {
val s_customers = espmContainer.getEntitySet("Customers")
val t_customer = s_customers.entityType
val p_customerID = t_customer.getProperty("CustomerID")
val p_city = t_customer.getProperty("City")
val p_country = t_customer.getProperty("Country")
val customer = EntityValue.ofType(t_customer)
p_customerID.setString(customer, GuidValue.random().toString())
p_city.setString(customer, "London")
p_country.setString(customer, "GB")
espmContainer.createEntity(customer)
}
Updating an Entity¶
Proxy Classes for Update¶
void updateEntityExample() {
DataQuery query = new DataQuery()
.top(1)
.filter(Customer.city.equal("London"));
List<Customer> customers = espmContainer.getCustomers(query);
Customer customer = customers.get(0);
customer.setCity("Liverpool");
espmContainer.updateEntity(customer);
}
fun updateEntityExample() {
val query = DataQuery()
.top(1)
.filter(Customer.city.equal("London"))
val customers = espmContainer.getCustomers(query)
val customer = customers[0]
customer.city = "Liverpool"
espmContainer.updateEntity(customer)
}
Dynamic API for Update¶
void updateEntityExample() {
EntitySet s_customers = espmContainer.getEntitySet("Customers");
EntityType t_customer = s_customers.getEntityType();
Property p_city = t_customer.getProperty("City");
DataQuery query = new DataQuery()
.top(1)
.from(s_customers)
.filter(p_city.equal("London"));
EntityValue customer = espmContainer.executeQuery(query)
.getRequiredEntity();
p_city.setString(customer, "Liverpool");
espmContainer.updateEntity(customer);
}
fun updateEntityExample() {
val s_customers = espmContainer.getEntitySet("Customers")
val t_customer = s_customers.entityType
val p_city = t_customer.getProperty("City")
val query = DataQuery()
.top(1)
.from(s_customers)
.filter(p_city.equal("London"))
val customer = espmContainer.executeQuery(query).requiredEntity
p_city.setString(customer, "Liverpool")
espmContainer.updateEntity(customer)
}
Deleting an Entity¶
Proxy Classes for Deletion¶
void deleteEntityExample() {
DataQuery query = new DataQuery()
.top(1)
.selectKey()
.filter(Customer.city.equal("Liverpool"));
List<Customer> customers = espmContainer.getCustomers(query);
Customer customer = customers.get(0);
espmContainer.deleteEntity(customer);
}
fun deleteEntityExample() {
val query = DataQuery()
.top(1)
.selectKey()
.filter(Customer.city.equal("Liverpool"))
val customers = espmContainer.getCustomers(query)
val customer = customers[0]
espmContainer.deleteEntity(customer)
}
Dynamic API for Deletion¶
void deleteEntityExample() {
EntitySet s_customers = espmContainer.getEntitySet("Customers");
EntityType t_customer = s_customers.getEntityType();
Property p_city = t_customer.getProperty("City");
DataQuery query = new DataQuery()
.top(1)
.selectKey()
.from(s_customers)
.filter(p_city.equal("Liverpool"));
EntityValue customer = espmContainer.executeQuery(query).getRequiredEntity();
espmContainer.deleteEntity(customer);
}
fun deleteEntityExample() {
val s_customers = espmContainer.getEntitySet("Customers")
val t_customer = s_customers.entityType
val p_city = t_customer.getProperty("City")
val query = DataQuery()
.top(1)
.selectKey()
.from(s_customers)
.filter(p_city.equal("Liverpool"))
val customer = espmContainer.executeQuery(query).requiredEntity
espmContainer.deleteEntity(customer)
}
Last update: April 14, 2021