Store.java

package ejava.jpa.examples.query;

import java.util.ArrayList;

import java.util.List;

import javax.persistence.*;

@Entity @Table(name="JPAQL_STORE")
public class Store {
    @Id @GeneratedValue 
    @Column(name="STORE_ID")
    private long id;
    
    @Column(length=20, nullable=false)
    private String name;

    @OneToMany(mappedBy="store", 
            cascade={CascadeType.REMOVE}, 
            fetch=FetchType.LAZY)
    private List<Sale> sales = new ArrayList<Sale>();

    public long getId() { return id; }
    
    public List<Sale> getSales() { return sales; }
    public Store setSales(List<Sale> sales) {
        this.sales = sales;
        return this;
    }
    public Store addSale(Sale...sale) {
    	if (sale != null) {
    		for (Sale s : sale) {
    			if (s != null) { sales.add(s); }
    		}
    	}
    	return this;
    }
    
    public String getName() { return name; }
    public Store setName(String name) {
        this.name = name;
        return this;
    }
    
    public String toString() {
        StringBuilder text = new StringBuilder();
        text.append("name=" + name);
        text.append(", sales(" + sales.size() + ")={");
        for(Sale s : sales) {
            text.append(s.getId() + ", ");
        }
        text.append("}");
        return text.toString();
    }
}