aqui tem 3 classes que se relacionan …
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Model;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.IndexColumn;
/**
*
* @author yukito
*/
@Entity
@Table (name = "COMARCA")
public class Comarca implements Serializable {
@Id
@SequenceGenerator (name = "Comarca_seq" , sequenceName= "comarca_seq", initialValue=1, allocationSize=1)
@GeneratedValue (strategy=GenerationType.SEQUENCE, generator="Comarca_seq")
@Column (name = "COMARCA_ID")
private int comarcaId;
@Column (name= "NOME", nullable=false , length=50)
private String nome;
@OneToMany (mappedBy="comarca",fetch=FetchType.LAZY)
@IndexColumn (name= "CIDADE_INDEX")
@Fetch (FetchMode.SELECT)
@Cascade (CascadeType.SAVE_UPDATE)
private Collection<Cidade> cidade ;
@OneToMany (mappedBy="comarca",fetch=FetchType.LAZY)
@IndexColumn (name= "VARA_INDEX")
@Fetch(FetchMode.SELECT)
@Cascade (CascadeType.SAVE_UPDATE)
private Collection<Vara> vara ;
public Collection<Cidade> getCidade() {
return cidade;
}
public void setCidade(Collection<Cidade> cidade) {
this.cidade = cidade;
}
public int getComarcaId() {
return comarcaId;
}
public void setComarcaId(int comarcaId) {
this.comarcaId = comarcaId;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Collection<Vara> getVara() {
return vara;
}
public void setVara(Collection<Vara> vara) {
this.vara = vara;
}
@Override
public String toString(){
return nome;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Comarca other = (Comarca) obj;
if (this.comarcaId != other.comarcaId) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 7;
hash = 97 * hash + this.comarcaId;
return hash;
}
}
…
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Model;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.ForeignKey;
/**
*
* @author yukito
*/
@Entity
@Table (name ="Cidade")
public class Cidade implements Serializable {
@Id
@SequenceGenerator (name = "Cidade_seq", sequenceName="cidade_seq", initialValue=1,allocationSize=1)
@GeneratedValue (strategy = GenerationType.SEQUENCE, generator="Cidade_seq")
@Column(name = "CIDADE_ID", nullable= false)
private int cidadeId;
@Column(name = "NOME_CIDADE",nullable=false, length=70)
private String nomeCidade;
@Column(name = "SIGLA_ESTADO",nullable=false, length=2 )
private String siglaEstado;
@Column(name = "NOME_ESTADO", nullable=false, length=50)
private String nomeEstado;
@OneToMany(mappedBy = "cidade", fetch=FetchType.LAZY , targetEntity=Pessoa.class)
@Fetch(FetchMode.SELECT)
@Cascade(CascadeType.SAVE_UPDATE)
private Set<Pessoa> pessoa = new HashSet<Pessoa>();
@ManyToOne (fetch=FetchType.LAZY)
@Fetch(FetchMode.JOIN)
@JoinColumn (name = "CIDADE_COMARCA", nullable=true)
@ForeignKey (name= "CIDADE_COMARCA_FK")
private Comarca comarca;
public int getCidadeId() {
return cidadeId;
}
public void setCidadeId(int cidadeId) {
this.cidadeId = cidadeId;
}
public Comarca getComarca() {
return comarca;
}
public void setComarca(Comarca comarca) {
this.comarca = comarca;
}
public String getNomeCidade() {
return nomeCidade;
}
public void setNomeCidade(String nomeCidade) {
this.nomeCidade = nomeCidade;
}
public String getNomeEstado() {
return nomeEstado;
}
public void setNomeEstado(String nomeEstado) {
this.nomeEstado = nomeEstado;
}
public Set<Pessoa> getPessoa() {
return pessoa;
}
public void setPessoa(Set<Pessoa> pessoa) {
this.pessoa = pessoa;
}
public String getSiglaEstado() {
return siglaEstado;
}
public void setSiglaEstado(String siglaEstado) {
this.siglaEstado = siglaEstado;
}
@Override
public String toString(){
return nomeCidade;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Cidade other = (Cidade) obj;
if (this.cidadeId != other.cidadeId) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 3;
hash = 83 * hash + this.cidadeId;
return hash;
}
}
…
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Model;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.annotations.ForeignKey;
/**
*
* @author yukito
*/
@Entity
@Table (name ="VARA")
public class Vara implements Serializable {
@Id
@SequenceGenerator (name = "Vara_seq", sequenceName= "vara_seq",initialValue=1 ,allocationSize=1)
@GeneratedValue (strategy=GenerationType.SEQUENCE, generator="Vara_seq")
@Column (name = "VARA_ID", nullable= false)
private int varaId;
@Column (name = "NUMERO", nullable=false)
private String numero;
@Column (name= "JUSTICA", nullable=false)
private String justica;
@Column (name = "TEL_VARA", length=13)
private String TelVara;
@Column (name = "NOME_JUIZ", length= 60)
private String nomeJuiz;
@Column (name = "TEL_GAB_JUIZ", length=13)
private String telJuiz;
@Column (name = "NOME_PROMOTOR", length=60)
private String nomePromotor;
@Column (name = "TEL_GAB_PROMOTOR", length=13)
private String telPromotor;
@ManyToOne (fetch=FetchType.LAZY)
@Fetch(FetchMode.JOIN)
@JoinColumn (name = "VARA_COMARCA")
@ForeignKey (name = "VARA_COMARCA_FK")
private Comarca comarca;
@OneToMany (mappedBy="vara" ,fetch=FetchType.LAZY)
@Fetch (FetchMode.SELECT)
@Cascade (CascadeType.ALL)
private Set<Processo> processo = new HashSet<Processo>();
@OneToMany (mappedBy="vara" ,fetch=FetchType.LAZY)
@Fetch(FetchMode.SELECT)
@Cascade (CascadeType.ALL)
private Set<Andamento> andamento= new HashSet<Andamento>();
public Set<Andamento> getAndamento() {
return andamento;
}
public void setAndamento(Set<Andamento> andamento) {
this.andamento = andamento;
}
public Set<Processo> getProcesso() {
return processo;
}
public void setProcesso(Set<Processo> processo) {
this.processo = processo;
}
public Comarca getComarca() {
return comarca;
}
public void setComarca(Comarca comarca) {
this.comarca = comarca;
}
public String getJustica() {
return justica;
}
public void setJustica(String justica) {
this.justica = justica;
}
public String getNomeJuiz() {
return nomeJuiz;
}
public void setNomeJuiz(String nomeJuiz) {
this.nomeJuiz = nomeJuiz;
}
public String getNomePromotor() {
return nomePromotor;
}
public void setNomePromotor(String nomePromotor) {
this.nomePromotor = nomePromotor;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
public String getTelJuiz() {
return telJuiz;
}
public void setTelJuiz(String telJuiz) {
this.telJuiz = telJuiz;
}
public String getTelPromotor() {
return telPromotor;
}
public void setTelPromotor(String telPromotor) {
this.telPromotor = telPromotor;
}
public int getVaraId() {
return varaId;
}
public void setVaraId(int varaId) {
this.varaId = varaId;
}
public String getTelVara() {
return TelVara;
}
public void setTelVara(String TelVara) {
this.TelVara = TelVara;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Vara other = (Vara) obj;
if (this.varaId != other.varaId) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 5;
hash = 79 * hash + this.varaId;
return hash;
}
}
Algumas estao como set pois estava testando , é usar alguns collections já apare o erro.