package br.com.ufrj.msi2.netuno.modelo.entidades; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; // O SQL Abaixo n�o � SQL :P � JPQL (Linguagem SQL do JPA) @NamedQueries( { @NamedQuery(name="Usuario.recuperarPorLoginESenha", query="SELECT u FROM Usuario u WHERE u.login = :login AND u.senha = :senha"), @NamedQuery(name="Usuario.recuperaPorCPF", query="select u from Usuario u where u.cpf = :cpf"), @NamedQuery(name="Usuario.recuperaPorLogin", query="select u from Usuario u where u.login = :login") } ) @Entity @Table(name="usuario") @Inheritance(strategy=InheritanceType.JOINED) public abstract class Usuario implements Serializable { private static final long serialVersionUID = -7388109837156922864L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id; @Column(name="login") private String login; @Column(name="senha") private String senha; @Column(name="nome") private String nome; @Column(name="email") private String email; @Embedded private CPF cpf; public Integer getId() { return id; } public String getLogin() { return login; } public String getSenha() { return senha; } public String getNome() { return nome; } public String getEmail() { return email; } public CPF getCpf() { return cpf; } public void setId(Integer id) { this.id = id; } public void setLogin(String login) { this.login = login; } public void setSenha(String senha) { this.senha = senha; } public void setNome(String nome) { this.nome = nome; } public void setEmail(String email) { this.email = email; } public void setCpf(CPF cpf) { this.cpf = cpf; } public abstract String getTipo(); }