如何使用休眠从数据库中选择值?

Posted

技术标签:

【中文标题】如何使用休眠从数据库中选择值?【英文标题】:how to select value from database using hibernate? 【发布时间】:2011-07-27 13:34:40 【问题描述】:

我是 hibernate 的新手,我使用的是 mysql 数据库,有两个表 serviceTypeDetails,validateConfig。在 serviceTypeDetails,它有四种类型的服务,另一个表 validateconfig 包含关于每个 servicetypeid 的 31 行,使用 hibernate 我怎么能从 validateConfig 中选择数据以及所需的映射关联和查询。

ServiceTypeDetails.java

包 com.example.HibernateDataManager; 公共类 ServiceTypeDetails 私有长 ID; 私有字符串服务类型名称; 公共服务类型详细信息() 公共无效setId(长ID) 这个.Id=id; 公共长 getId() 返回标识; 公共无效 setServiceTypeName(字符串服务名称) this.serviceTypeName=服务名称; 公共字符串 getServiceTypeName() 返回服务类型名称;

ValidateConfiguration.java

包 com.example.HibernateDataManager; 公共类 ValidateConfiguration 私有长 ID; 私有字符串字段名; 私有字符串模式值; 公共验证配置() 公共无效 setId(长服务 ID) this.Id=serviceID; 公共长 getId() 返回标识; 公共无效 setFieldName(字符串字段名) this.fieldName=fieldName; 公共字符串 getFieldName() 返回字段名; 公共无效 setModeValue(字符串模式值) this.modeValue=modevalue; 公共字符串 getModeValue() 返回模式值;

Main.java

包 com.arosys.HibernateDataManager; 导入 java.util.Iterator; 导入 org.hibernate.Query; 导入 org.hibernate.Session; 导入 org.hibernate.SessionFactory; 导入 org.hibernate.cfg.Configuration; 公共类主 公共静态无效主(字符串 s[]) 尝试 SessionFactory factory=new Configuration().configure().buildSessionFactory(); 会话会话=factory.openSession(); String sql_query="来自验证配置"; 查询查询=session.createQuery(sql_query); System.out.println(查询); for(迭代器 it=query.iterate();it.hasNext();) ValidateConfiguration std = (ValidateConfiguration) it.next(); System.out.println("serviceTypeID:" + std.getId()); System.out.println("字段名:" + std.getFieldName()); // System.out.println("ModeValue:" + validateconfig.getModeValue()); session.close(); catch(异常 e)e.printStackTrace();

【问题讨论】:

向我们展示你的一些尝试? 你有没有支持POJO类,没有对象就没有ORM的意义,你还不如使用普通的SQL。 我同意 Manoj 的观点。恢复为普通 SQL。 当我尝试执行查询时抛出异常:找到了多个具有给定标识符的行。 【参考方案1】:

设置

<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>

在您的 hibernate.cfg.xml 中。

然后检查生成了什么 SQL 查询。

问题似乎更多地在于数据库设计。

【讨论】:

以上是关于如何使用休眠从数据库中选择值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用休眠本机查询获取单个记录字符串值?

如何使用休眠读取地理值?

自动递增值并使用休眠设置从 1 开始

使用休眠从数据库中获取下一个序列值

如何使用休眠插入加密数据

如何选择适合的 ORM 或应用程序?例如,如果我们使用的是 Linq,那么为啥不休眠