This tutorial will use an example database with three tables, and three corresponding domain objects.
We use PostgreSQL syntax in the examples. Here is the DDL for our database:
CREATE SEQUENCE country_id;
CREATE SEQUENCE address_id;
CREATE SEQUENCE customer_id;
CREATE TABLE country (
id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('country_id'),
name TEXT
);
CREATE TABLE address (
id INTEGER NOT NULL DEFAULT nextval('address_id'),
street TEXT,
zip TEXT,
city TEXT,
country INTEGER NOT NULL REFERENCES country(id)
);
CREATE TABLE customer (
id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('customer_id'),
name TEXT,
email TEXT,
delivery_address INTEGER NOT NULL REFERENCES address(id),
billing_address INTEGER NOT NULL REFERENCES address(id)
);And these are our corresponding domain objects, getters and setters omitted for brevity:
public class Country {
private Integer id;
private String name;
}
public class Address {
private Integer id;
private String street;
private String zip;
private String city;
private Country country;
}
public class Customer {
private Integer id;
private String name;
private String email;
private Address deliveryAddress;
private Address billingAddress;
}