Duvida Mapeamento Hibernate

0 respostas
ricardo.narezi

Fala ae Galera,

Tenho o seguinte mapeamento

@Entity
@Table(name = "REGISTRO_NOTA_FISCAL")
public class RegistroNotaFiscalModel implements BaseModel<RegistroNotaFiscalVo> {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -5784015894277814959L;
	
	@Id
	@TableGenerator(name="ID_REGISTRO_NOTA_FISCAL_PK", pkColumnName="NM_SEQUENCE", pkColumnValue="REGISTRO_NOTA_FISCAL", valueColumnName="NR_CURRENT_KEY", table="SEQUENCE_BLOCK", allocationSize=0, initialValue=1 )
	@GeneratedValue( strategy = GenerationType.TABLE, generator = "ID_REGISTRO_NOTA_FISCAL_PK" )
	@Column(name="ID_REGISTRO_NOTA_FISCAL_PK", nullable=false)
	private Long id;
	
	@Column(name="NO_ARQUIVO_RETORNO")
	private String noArquivoRetorno;
		
	@Column(name="DC_PERIODO_REFERENCIA")
	private String dcPeriodoReferencia;
	
	@Column(name="DC_PROTOCOLO")
	private String dcProtocolo;
	
	@Column(name="DC_OPERADORA_INTERNA")
	private String dcOperadoraInterna;
	
	@Column(name="DC_EMPRESA")
	private String dcEmpresa;
	
	@Column(name="DC_CNPJ_FORNECEDOR")
	private String dcCnpjFornecedor;
	
	@Column(name="DC_OPERADORA_EXTERNA")
	private String dcOperadoraExterna;
	
	@Column(name="DC_DATA_EMISSAO")
	private String dcDataEmissao;
	
	@Column(name="DC_NUMERO_DOCUMENTO")
	private String dcNumeroDocumento;
	
	@Column(name="DC_VALOR_NOTA_FISCAL")
	private String dcValorNotaFiscal;
	
	@Column(name="DC_VALOR_ICMS")
	private String dcValorIcms;
	
	@Column(name="CD_SITUACAO_NOTA_FISCAL")
	private Long cdSituacaoNotaFiscal;
	
	@Column(name="NO_FORNECEDOR")
	private String noFornecedor;
	
	@Column(name="DC_FORNECEDOR_SAP")
	private String dcFornecedorSAP;
	
	@Column(name="DC_SERIE")
	private String dcSerie;
	
	@Column(name="VL_BRUTO_APURADO")
	private Double vlBrutoApurado;
	
	@ManyToOne
	@JoinColumn(name="ID_REMESSA_FK")
	private RemessaNotaFiscalModel remessa;
	
	@Fetch(FetchMode.SELECT)
	@OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL ,mappedBy="registroNF")
	private List<RegistroNFDetalheModel> detalheNF;
	
	@Fetch(FetchMode.SELECT)
	@ManyToMany(fetch=FetchType.EAGER, cascade = { CascadeType.REFRESH })
	@JoinTable(name = "REGISTRO_NOTA_FISCAL_CRITICA", joinColumns = { @JoinColumn(name = "ID_REGISTRO_NOTA_FISCAL_FK")},
	  inverseJoinColumns={@JoinColumn(name = "ID_CRITICA_FK")})   
	private List<CriticaModel> criticas;

Especificamente no detelheNF faço referencia a outro mapeamento

@Entity
@Table(name = "REGISTRO_NOTA_FISCAL_DETALHE")
public class RegistroNFDetalheModel implements BaseModel<RegistroNFDetalheVo> {
	
	
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -1658436210211971729L;

	@Id
	@Column(name="ID_REGISTRO_NOTA_FISCAL_FK", nullable=false)
	private Integer id;
	
	@ManyToOne
	@JoinColumn(name="ID_TIPO_CATEGORIA_FK")
	private TipoCategoriaModel categoria;
	
	@ManyToOne
	@JoinColumn(name="ID_TIPO_REMUNERACAO_FK")
	private TipoRemuneracaoModel remuneracao;
	
	@Column(name="VL_BRUTO_DETRAF")
	private Double vlBrutoDetraf;
	
	@Column(name="VL_CONTESTACAO")
	private Double vlContestacao;
		
	@Fetch(FetchMode.JOIN)
	@ManyToOne (cascade = javax.persistence.CascadeType.ALL, fetch = FetchType.EAGER)
	@JoinColumn(name = "ID_REGISTRO_NOTA_FISCAL_FK", insertable=false, updatable=false, nullable=false)
	private RegistroNotaFiscalModel registroNF;

Qdo chamo o primeiro mapeamento, ele retorna os filhos, no caso esse detalhe, só que ele deveria retornar duas linhas diferentes do banco e esta retornando a primeira linha duplicida, onde se referencia ao segundo mapeamento.

alguém ja teve esse problema?

obrigado

Criado 15 de outubro de 2009
Respostas 0
Participantes 1