【问题标题】: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。
  • 当我尝试执行查询时抛出异常:找到了多个具有给定标识符的行。

标签: mysql hibernate


【解决方案1】:

设置

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

在您的 hibernate.cfg.xml 中。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 2011-04-12
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多