package jpql.query; | |
import java.io.Serializable; | |
import java.util.List; | |
import javax.persistence.Column; | |
import javax.persistence.Entity; | |
import javax.persistence.Id; | |
import javax.persistence.JoinColumn; | |
import javax.persistence.ManyToOne; | |
import javax.persistence.NamedQueries; | |
import javax.persistence.NamedQuery; | |
import javax.persistence.OneToMany; | |
import javax.persistence.OneToOne; | |
import javax.persistence.OrderBy; | |
import javax.persistence.Transient; | |
@Entity | |
@NamedQueries | |
({ | |
@NamedQuery(name="customer.findAll", query="SELECT c FROM Customer c"), | |
@NamedQuery(name="customer.name", query="select c.firstName FROM Customer c Group By c.firstName HAVING c.firstName = concat(:fname, :lname)"), | |
@NamedQuery(name="customer.substring", query="select count(c) FROM Customer c JOIN c.aliases a GROUP BY a.alias HAVING a.alias = SUBSTRING(:string1, :int1, :int2)"), | |
@NamedQuery(name="customer.area", query="SELECT Distinct Object(c) From Customer c, IN(c.home.phones) p where p.area LIKE :area"), | |
@NamedQuery(name="customer.city", query="SELECT c from Customer c where c.home.city IN :city"), | |
@NamedQuery(name="customer.new", query="SELECT new com.titan.domain.Name(c.firstName, c.lastName) FROM Customer c") | |
}) | |
public class Customer implements Serializable { | |
@Column(name="FIRST_NAME") | |
private String firstName; | |
@Column(name="HAS_GOOD_CREDIT") | |
private Long hasGoodCredit; | |
@Id | |
@Column(nullable = false) | |
private Long id; | |
@Column(name="LAST_NAME") | |
private String lastName; | |
@ManyToOne | |
@JoinColumn(name = "ADDRESS_ID") | |
private Address address; | |
@OneToMany(mappedBy = "customer") | |
private List<Phone> phoneList; | |
@OrderBy | |
@OneToMany(mappedBy = "customer") | |
private List<Alias> aliases; | |
@OneToOne | |
private Home home; | |
@Transient | |
private String title; | |
@OneToOne | |
private Dept dept; | |
} |