如何使用休眠从数据库中选择值?
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 查询。
问题似乎更多地在于数据库设计。
【讨论】:
以上是关于如何使用休眠从数据库中选择值?的主要内容,如果未能解决你的问题,请参考以下文章