...Mentre non risolvo il "mistero" di questi bean voglio proseguire il la scrittura dell'agenda.
Devo risolvere il seguente problema.Implementare il metodo
ArrayList<Appuntamento> getAppuntamenti(Utente ut)
Il quale dato un utente di input torni i suoi appuntamenti.
Nell'ipotesi che usi un l'Entity manager em, come per ottenre la lista degli appuntamenti
dell'utente?
Gli entity bean Utente e Appuntamento sono i seguenti :
@Entity
@Table(name = "UTENTE")
@NamedQueries({
@NamedQuery(name = "Utente.findAll", query = "SELECT u FROM Utente u"),
@NamedQuery(name = "Utente.findById", query = "SELECT u FROM Utente u WHERE u.id = :id"),
@NamedQuery(name = "Utente.findByNome", query = "SELECT u FROM Utente u WHERE u.nome = :nome")})
public class Utente implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "ID")
private Integer id;
@Column(name = "NOME")
private String nome;
public Utente() {
}
public Utente(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Utente)) {
return false;
}
Utente other = (Utente) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "modello.Utente[id=" + id + "]";
}
}
@Entity
@Table(name = "APPUNTAMENTO")
@NamedQueries({
@NamedQuery(name = "Appuntamento.findAll", query = "SELECT a FROM Appuntamento a"),
@NamedQuery(name = "Appuntamento.findById", query = "SELECT a FROM Appuntamento a WHERE a.id = :id"),
@NamedQuery(name = "Appuntamento.findByOra", query = "SELECT a FROM Appuntamento a WHERE a.ora = :ora"),
@NamedQuery(name = "Appuntamento.findByUtente", query = "SELECT a FROM Appuntamento a WHERE a.utente = :utente")})
public class Appuntamento implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "ID")
private Integer id;
@Column(name = "ORA")
private String ora;
/*Nella tabella Appuntamento ho la chiave esterna Utente che si riferisce alla chiave primaria ID della tabella Utente
*/
@ManyToOne@JoinColumn(name="UTENTE", referencedColumnName="ID")
private Utente utente;
public Appuntamento() {
}
public Appuntamento(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getOra() {
return ora;
}
public void setOra(String ora) {
this.ora = ora;
}
public Utente getUtente() {
return utente;
}
public void setUtente(Utente utente) {
this.utente = utente;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Appuntamento)) {
return false;
}
Appuntamento other = (Appuntamento) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "modello.Appuntamento[id=" + id + "]";
}
}
Un appuntamento è riferito ad un Utente mentre un utente può rendere più appuntamenti.IL mapping JPA della relazione se non ho fatto errori di sintassi è giusta.