Skip to content

Instantly share code, notes, and snippets.

@craigew
craigew / persistence.xml
Created September 28, 2013 13:32
Address entry in persistence.xml
<class>com.craigew.entity.Address</class>
@craigew
craigew / Customer.java
Created September 28, 2013 13:35
Reference to address
@OneToOne(cascade = CascadeType.ALL, optional=false)
@JoinColumn(name="RESIDENTIAL_ADDRESS_ID")
private Address residentialAddress;
@OneToOne(cascade = CascadeType.ALL, optional=true)
@JoinColumn(name="POSTAL_ADDRESS_ID")
private Address postalAddress;
@craigew
craigew / DataAccess.java
Created September 28, 2013 13:44
Method to allow for query on DataAccess
protected List<T> queryString(String sql){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("JPAIntroduction");
EntityManager em = factory.createEntityManager();
List<T> results= em.createQuery(sql).getResultList();
em.close();
factory.close();
return results;
}
@craigew
craigew / CustomerManagementService.java
Created September 28, 2013 13:46
Query methods on Customer
public List<Customer> returnAllCustomers() {
return queryString("SELECT e FROM Customer e");
}
public List<Customer> returnCustomersForACountry(String country) {
return queryString("SELECT e FROM Customer e WHERE e.residentialAddress.country='" + country + "'");
}
@craigew
craigew / TestCustomerManagement.java
Created September 28, 2013 13:49
The Customer test
package com.craigew.service;
import com.craigew.entity.Address;
import com.craigew.entity.Customer;
import junit.framework.Assert;
import org.junit.Test;
import javax.persistence.EntityNotFoundException;
import java.util.List;