Grupo, bom dia.
Na situação abaixo, quando uso SecondaryTable para AgenciasBancarias, funciona numa boa, mas quando uso para TerceiroEndereco, não retorna nenhum registro.
O que percebi é que se não houver nenhum registro na tabela de endereços, ele não retorna (o motivo é este).
Mas haverá casos em que não será informado o endereço mesmo, e não posso sujar minha tabela simplesmente criando um registro apenas com o id da Fk.
Alguem sabe como resolver isto ?
Obrigado
As tabelas :
Terceiro (id (pk), nome (string), cnpj (string), ativo (boolean))
Banco (id (pk), nome (string), numeroBanco (string))
AgenciaBancaria(terceiro (fk), banco (fk), numeroAgencia (string))
TerceiroEndereco(terceiro (fk), logradouro (string), bairro (string), cep (string))
Minhas entidades :
@Entity
@Table(name = “banco”)
public class Banco implements Serializable {
private static final long serialVersionUID = 1L;
private static final Logger log = LoggerFactory.getLogger(Banco.class);
@Id
@Column(name = “id”)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = “numerobanco”, length=5)
private String numeroBanco;
<a class="mention" href="/u/size">@Size</a>(min = 1, max = 50)
@Column(name = “nomebanco”, length=50)
private String nomeBanco;
@Entity
@Table(name = “terceiro”)
@SecondaryTable(name = “terceiroagenciabancaria”,
pkJoinColumns = @PrimaryKeyJoinColumn(name = “terceiro”, referencedColumnName = “id”))
public class TerceiroAgenciaBancaria implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = “id”)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
<a class="mention" href="/u/basic">@Basic</a>(optional = false)
<a class="mention" href="/u/size">@Size</a>(min = 1, max = 5)
@Column(table = “terceiroagenciabancaria”, name = “nroagencia”)
private String nroAgencia;
@JoinColumn(table = “terceiroagenciabancaria”, name = “banco”, referencedColumnName = “id”)
@ManyToOne(optional = false)
private Banco banco;
Meu Managed Bean
@ManagedBean
@ViewScoped[b]
public class AgenciaBancariaMB {
private static final Logger log = LoggerFactory.getLogger(AgenciaBancariaMB.class);
private List<TerceiroAgenciaBancaria> agenciasBancarias = new ArrayList<TerceiroAgenciaBancaria>();
private List<Banco> bancos = new ArrayList<Banco>();
/** Creates a new instance of ColaboradorJSFBean */
public AgenciaBancariaMB() {
}
public TerceiroAgenciaBancaria getAgenciaBancaria() {
return getObjSelecionado();
}
public void setAgenciaBancaria(TerceiroAgenciaBancaria agenciaBancaria) {
setObjSelecionado(agenciaBancaria);
}
public List<TerceiroAgenciaBancaria> getAgenciasBancarias() {
return agenciasBancarias;
}
public List<Banco> getBancos() {
return bancos;
}