Olá!
Tenho 2 tabelas mensagem e mensagem_trl, que se ligam pelo campo mensagem_id.
Estou tentando criar uma entidade de mensagem que já me traga uma mensagem_trl, mas não está saindo como planejei.
tabela mensagem:
mensagem_id varchar(32)
mensagem varchar(500)
tabela mensagem_trl
mensagem_trl_id varchar(32)
mensagem_id varchar(32)
traduzido char(1)
mensagem varchar(500)
Java:
@Entity
@Component
@Table(schema = "public", name = "mensagem")
public class Mensagem implements Serializable {
@Id
@Column(name = "mensagem_id")
private String mensagemId;
private String mensagem;
private MensagemTrl traducao;
@OneToOne
@JoinColumn(name = "mensagem_id")
public MensagemTrl getTraducao () {
return this.traducao;
}
//getters e setters
}
@Entity
@Component
@Table(schema = "public", name = "mensagem_trl")
public class MensagemTrl implements Serializable {
@Column(name = "mensage_trl_id")
private String mensagemTrlId
@JoinColumn(name = "mensagem_id")
private String mensagemId;
private char traduzido;
private String mensagem;
//getters e setters
}
E estou usando o VRaptor pra dar saida aos dados.
Meu jsp está assim:
<c:forEach items="${messageList }" var="msg">
<tr>
<td>${msg.mensagemId }</td>
<td>${msg.mensagem }</td>
<td>${msg.traducao.mensagemTrlId }</td>
<td>${msg.traducao.mensagem }</td>
</tr>
</c:forEach>
Mas os itens traducao.mensagemTrlId e msg.traducao.mensagem estão vindo vazios.
Debugando o projeto, o atributo traducao está vindo vazio (null).
Na saída do Hibernate no console, ele está tentado fazer:
left outer join
public.mensagem_trl mensagemtrl2_
on this_.mensagem_id=mensagemtrl2_.mensagem_trl_id
Alguma luz?