[Resolvido] Inner Join com hibernate

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?

Você está fazendo a pesquisa através de get/load ou de uma HQL ou Criteria?

[quote=drsmachado]Você está fazendo a pesquisa através de get/load ou de uma HQL ou Criteria?[/quote]Além disso aqui, você tem certeza que existem dados no db?

Pois eu reparei que você não tem cascade, então você tem que salvar as duas pontas do relacionamento e apontar as referências. O.o

Valeu pelas respostas, galera.
O meu problema era conceitual, achei que minha tabela era One to One, mas na realidade é One to Many (uma mensagem, várias traduções).
O código ficou assim:

@Entity
@Component
@Table(schema = "public", name = "mensagem")
public class Mensagem implements Serializable {
	@Id
	@Column(name = "mensagem_id")
	private String mensagemId;
	private String mensagem;

	@OneToMany(fetch = FetchType.LAZY, mappedBy="mensagem")
	private Set<MensagemTrl> traducao;

	//getters e setters
}

@Entity
@Component
@Table(schema = "public", name = "mensagem_trl")
public class MensagemTrl implements Serializable {
	@Column(name = "mensagem_trl_id")
	private String mensagemTrlId
	@Column(name = "mensagem_id)
	private String mensagemId;
	private char traduzido;
	private String mensagem;
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name="ad_message_id", nullable = false, insertable = false, updatable = false)
	private Mensagem mensagem;
	//getters e setters
}

E no JSP

<c:forEach items="${messageList }" var="msg">
	<tr>
		<td>${msg.mensagemId }</td>
		<td>${msg.mensagem }</td>
		<c:forEach items="${msg.traducao}" var="trd">
			<td>${trd.mensagemId}</td>
			<td>${trd.mensagem }</td>
		</c:forEach>
	</tr>
</c:forEach>