Classe Recurso.java
`
package testcirculo;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@ Entity
@ Table(name = “recurso”)
@ XmlRootElement
@NamedQueries({
@ NamedQuery(name = “Recurso.findAll”, query = “SELECT r FROM Recurso r”),
@ NamedQuery(name = “Recurso.findById”, query = “SELECT r FROM Recurso r WHERE r.id = :id”),
@ NamedQuery(name = “Recurso.findByDescricao”, query = “SELECT r FROM Recurso r WHERE r.descricao = :descricao”)})
public class Recurso implements Serializable {
private static final long serialVersionUID = 1L;
@ Id
@ GeneratedValue(strategy = GenerationType.IDENTITY)
@ Basic(optional = false)
@ Column(name = “id”)
private Integer id;
@ Column(name = “descricao”)
private String descricao;
@ JoinTable(name = “utilizador_descricao”, joinColumns = {
@ JoinColumn(name = “id_recurso”, referencedColumnName = “id”)}, inverseJoinColumns = {
@ JoinColumn(name = “id_utilizador”, referencedColumnName = “id”)})
@ ManyToMany
private Collection utilizadorCollection;
public Recurso() {
}
public Recurso(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
@XmlTransient
public Collection<Utilizador> getUtilizadorCollection() {
return utilizadorCollection;
}
public void setUtilizadorCollection(Collection<Utilizador> utilizadorCollection) {
this.utilizadorCollection = utilizadorCollection;
}
@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 Recurso)) {
return false;
}
Recurso other = (Recurso) 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 "testcirculo.Recurso[ id=" + id + " ]";
}
}
`
Classe Utilizador.java
`
package testtables;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@ Entity
@ Table(name = “utilizador”)
@ XmlRootElement
@ NamedQueries({
@ NamedQuery(name = “Utilizador.findAll”, query = “SELECT u FROM Utilizador u”),
@ NamedQuery(name = “Utilizador.findById”, query = “SELECT u FROM Utilizador u WHERE u.id = :id”),
@ NamedQuery(name = “Utilizador.findByNome”, query = “SELECT u FROM Utilizador u WHERE u.nome = :nome”)})
public class Utilizador implements Serializable {
private static final long serialVersionUID = 1L;
@ Id
@ GeneratedValue(strategy = GenerationType.IDENTITY)
@ Basic(optional = false)
@ Column(name = “id”)
private Integer id;
@ Column(name = “nome”)
private String nome;
@ManyToMany(mappedBy = “utilizadorCollection”)
private Collection recursoCollection;
public Utilizador() {
}
public Utilizador(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;
}
@ XmlTransient
public Collection<Recurso> getRecursoCollection() {
return recursoCollection;
}
public void setRecursoCollection(Collection<Recurso> recursoCollection) {
this.recursoCollection = recursoCollection;
}
@ 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 Utilizador)) {
return false;
}
Utilizador other = (Utilizador) 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 "testtables.Utilizador[ id=" + id + " ]";
}
}
`
Estas são as entidades criadas. Pelo que andei lendo, preciso utilizar o setRecursoCollection eu acho!
grato