@Lucas_Antonelli escreveu:
Olá terráqueos,
Existe a possibilidade de fazer uma relação @One-to-Many sem Primary Key na tabela filha?
Segue minhas duas entidades
Entidade NOTICIA:@Entity @Table(name = "NOTICIA") @NamedQueries({ @NamedQuery(name = "Noticia.findAll", query = "SELECT n FROM Noticia n"), @NamedQuery(name = "Noticia.findAllByDate", query = "SELECT n FROM Noticia n WHERE n.dhCadastro BETWEEN :startDate AND :endDate") }) public class Noticia implements Serializable { private static final long serialVersionUID = 1L; @Id //@GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "cdNoticia") private Long cdNoticia; @Basic(optional = false) @Column(name = "cdVeiculo") private long cdVeiculo; @Column(name = "nmAutor") private String nmAutor; @Column(name = "cdColunista") private Short cdColunista; @Basic(optional = false) @Column(name = "cdSecao") private short cdSecao; @Column(name = "dsTitulo") private String dsTitulo; @Lob @Column(name = "dsTexto") private String dsTexto; @Basic(optional = false) @Column(name = "dsURL") private String dsURL; @Column(name = "cdHash") private String cdHash; @Basic(optional = false) @Column(name = "dtNoticia") @Temporal(TemporalType.DATE) private Date dtNoticia; @Basic(optional = false) @Column(name = "hrNoticia") @Temporal(TemporalType.TIME) private Date hrNoticia; @Column(name = "dhCadastro") @Temporal(TemporalType.TIMESTAMP) private Date dhCadastro; @Basic(optional = false) @Column(name = "idTipo") private String idTipo; @Basic(optional = false) @Column(name = "idDigitalizada") private String idDigitalizada; @Column(name = "isTransicao") private Integer isTransicao; @Column(name = "isElasticSearch") private Integer isElasticSearch; @OneToMany(cascade = CascadeType.ALL, mappedBy = "noticia", orphanRemoval = true) private List<Noticiaimagem> noticiaimagemCollection = new ArrayList<Noticiaimagem>(); public Noticia() { } public Long getCdNoticia() { return cdNoticia; } public void setCdNoticia(Long cdNoticia) { this.cdNoticia = cdNoticia; } public long getCdVeiculo() { return cdVeiculo; } public void setCdVeiculo(long cdVeiculo) { this.cdVeiculo = cdVeiculo; } public String getNmAutor() { return nmAutor; } public void setNmAutor(String nmAutor) { this.nmAutor = nmAutor; } public Short getCdColunista() { return cdColunista; } public void setCdColunista(Short cdColunista) { this.cdColunista = cdColunista; } public short getCdSecao() { return cdSecao; } public void setCdSecao(short cdSecao) { this.cdSecao = cdSecao; } public String getDsTitulo() { return dsTitulo; } public void setDsTitulo(String dsTitulo) { this.dsTitulo = dsTitulo; } public String getDsTexto() { return dsTexto; } public void setDsTexto(String dsTexto) { this.dsTexto = dsTexto; } public String getDsURL() { return dsURL; } public void setDsURL(String dsURL) { this.dsURL = dsURL; } public String getCdHash() { return cdHash; } public void setCdHash(String cdHash) { this.cdHash = cdHash; } public Date getDtNoticia() { return dtNoticia; } public void setDtNoticia(Date dtNoticia) { this.dtNoticia = dtNoticia; } public Date getHrNoticia() { return hrNoticia; } public void setHrNoticia(Date hrNoticia) { this.hrNoticia = hrNoticia; } public Date getDhCadastro() { return dhCadastro; } public void setDhCadastro(Date dhCadastro) { this.dhCadastro = dhCadastro; } public String getIdTipo() { return idTipo; } public void setIdTipo(String idTipo) { this.idTipo = idTipo; } public String getIdDigitalizada() { return idDigitalizada; } public void setIdDigitalizada(String idDigitalizada) { this.idDigitalizada = idDigitalizada; } public Integer getIsTransicao() { return isTransicao; } public void setIsTransicao(Integer isTransicao) { this.isTransicao = isTransicao; } public Integer getIsElasticSearch() { return isElasticSearch; } public void setIsElasticSearch(Integer isElasticSearch) { this.isElasticSearch = isElasticSearch; } public List<Noticiaimagem> getNoticiaimagemCollection() { return noticiaimagemCollection; } public void setNoticiaimagemCollection(List<Noticiaimagem> noticiaimagemCollection) { this.noticiaimagemCollection = noticiaimagemCollection; } }
Entidade NOTICIAIMAGEM:
@Entity @Table(name = "NOTICIAIMAGEM") public class Noticiaimagem implements Serializable { private static final long serialVersionUID = 1L; @Id @ManyToOne @JoinColumn(name = "cdNoticia", nullable = false) @MapsId private Noticia noticia; @Column private String nmImagem; @Column(nullable = false) private String nmExtensao; @Column private Float nrTamanho; @Column(columnDefinition = "UNSIGNED SMALLINT(5)") private Integer nrAltura; @Column(columnDefinition = "UNSIGNED SMALLINT(5)") private Integer nrLargura; @Column(columnDefinition = "UNSIGNED TINYINT(3)") private Integer nrOrdem; @Column(columnDefinition = "UNSIGNED MEDIUMINT(8)") private Integer cdTipoNoticiaImagem; public Noticiaimagem() { } public Noticia getNoticia() { return noticia; } public void setNoticia(Noticia noticia) { this.noticia = noticia; } public String getNmImagem() { return nmImagem; } public void setNmImagem(String nmImagem) { this.nmImagem = nmImagem; } public String getNmExtensao() { return nmExtensao; } public void setNmExtensao(String nmExtensao) { this.nmExtensao = nmExtensao; } public Float getNrTamanho() { return nrTamanho; } public void setNrTamanho(Float nrTamanho) { this.nrTamanho = nrTamanho; } public Integer getNrAltura() { return nrAltura; } public void setNrAltura(Integer nrAltura) { this.nrAltura = nrAltura; } public Integer getNrLargura() { return nrLargura; } public void setNrLargura(Integer nrLargura) { this.nrLargura = nrLargura; } public Integer getNrOrdem() { return nrOrdem; } public void setNrOrdem(Integer nrOrdem) { this.nrOrdem = nrOrdem; } public Integer getCdTipoNoticiaImagem() { return cdTipoNoticiaImagem; } public void setCdTipoNoticiaImagem(Integer cdTipoNoticiaImagem) { this.cdTipoNoticiaImagem = cdTipoNoticiaImagem; } }
Mensagens: 8
Participantes: 2