有没有办法可以映射 Hibernate 对象中的字段以使用表查询加载?
举个例子,假设Table_Message
具有字段id(int)、message_key(varchar)、message_content(Clob)、language(varchar)
。该表将保存不同语言(区域设置)的消息。
还有另一个使用 hibernate 映射到实体的表。 评论
,其中包含字段id(int)、comment_message_id(varchar)、created_date(datetime)
。 comment_message_id
引用 Table_Message
的 message_key
列。
编辑:Table_Message 不是 hibernate 中的映射实体
假设我的评论类别是
public class Comment
{
int id;
String message;
Date createdDate;
}
有没有办法告诉hibernate通过使用默认区域设置(例如'en')的message_key连接Comment表和Table_Message表来加载消息。
基本上有没有办法告诉 hibernate 通过运行特定查询来加载字段?如果是的话,那是什么方式?
我知道如何编写自定义 SQL 查询来加载实体。但由于我使用的是 XDoclet,似乎没有办法做到这一点。如果有一种方法可以对单个字段执行此操作,那将非常方便。
最佳答案
我想 ResultTransformer 可能会在这方面帮助你。请检查
http://docs.jboss.org/hibernate/orm/3.3/api/org/hibernate/transform/ResultTransformer.html http://stackoverflow.com/questions/6423948/resulttransformer-in-hibernate-return-null
关于java - Hibernate 映射要通过表连接加载的特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10813228/