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