java - Hibernate 映射要通过表连接加载的特定字段

标签 java database hibernate orm hibernate-mapping

有没有办法可以映射 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_Messagemessage_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/

相关文章:

java - 线程异常 "main"java.lang.IllegalArgumentException : Cannot instantiate interface org. springframework.context.ApplicationContextInitializer

mysql - Infinidb -"` CREATE_TIMESTAMP` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"给出错误

ruby-on-rails - 奇怪的迁移错误

java.net.ConnectException : Connection refused: connect: localhost 异常

java - IntelliJ IDE 使用空格键而不是 Tab 自动完成功能时遇到问题

java - mongoDB:java.lang.InknownClassChangeError:实现类

java - n×n 矩阵作业

database - 创建用户 : could not connect to database postgres: FATAL: role "tom" does not exist

Java - 为什么 hibernate 会检测到脏对象,尽管它已经保存了?

java - hibernate 版?