Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何使用hibernate从数据库中选择值?_Mysql_Hibernate - Fatal编程技术网

Mysql 如何使用hibernate从数据库中选择值?

Mysql 如何使用hibernate从数据库中选择值?,mysql,hibernate,Mysql,Hibernate,我是hibernate的新手,我使用的是mysql数据库,有两个表serviceTypeDetails,validateConfig。在serviceTypeDetails中,它有四种类型的服务,另一个表validateConfig包含每个servicetypeid的31行,使用hibernate,我可以从validateConfig中选择数据,以及映射关联和查询所需的内容 ServiceTypeDetails.java 包com.example.hibernatatamanager; 公共类S

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

ServiceTypeDetails.java 包com.example.hibernatatamanager; 公共类ServiceTypeDetails { 私人长Id; 私有字符串serviceTypeName; 公共服务类型详细信息() { } 公共无效集合id(长id) { 这个.Id=Id; } 公共长getId() { 返回Id; } public void setServiceTypeName(字符串serviceName) { this.serviceTypeName=serviceName; } 公共字符串getServiceTypeName() { 返回serviceTypeName; } } ValidateConfiguration.java 包com.example.hibernatatamanager; 公共类ValidateConfiguration { 私人长Id; 私有字符串字段名; 私有字符串值; 公共验证配置() { } 公共无效集合ID(长服务ID) { this.Id=serviceID; } 公共长getId() { 返回Id; } public void setFieldName(字符串fieldName) { this.fieldName=fieldName; } 公共字符串getFieldName() { 返回字段名; } public void setModeValue(字符串modevalue) { this.modeValue=modeValue; } 公共字符串getModeValue() { 返回模式值; } } 主类 包com.arosys.hibernatatamanager; 导入java.util.Iterator; 导入org.hibernate.Query; 导入org.hibernate.Session; 导入org.hibernate.SessionFactory; 导入org.hibernate.cfg.Configuration; 公共班机 { 公共静态void main(字符串s[] {试试看{ SessionFactory工厂=新配置().configure().buildSessionFactory(); Session Session=factory.openSession(); 字符串sql\u query=“来自ValidateConfiguration”; Query=session.createQuery(sql\U查询); System.out.println(查询); for(Iterator it=query.iterate();it.hasNext();) { ValidateConfiguration std=(ValidateConfiguration)it.next(); System.out.println(“serviceTypeID:+std.getId()); System.out.println(“FieldName:+std.getFieldName()); //System.out.println(“ModeValue:+validateconfig.getModeValue()); } session.close(); }catch(异常e){e.printStackTrace();} } } 设置

true
真的
在hibernate.cfg.xml中

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


问题似乎更多地出现在数据库设计上。

向我们展示您的一些尝试?您是否有支持的POJO类,如果没有对象,在ORM中没有任何意义,您最好使用纯SQL。我同意Manoj。返回到纯SQL。当我尝试执行查询时抛出异常:找到了多个具有给定标识符的行。 package com.example.HibernateDataManager; public class ServiceTypeDetails { private Long Id; private String serviceTypeName; public ServiceTypeDetails() { } public void setId(long id) { this.Id=id; } public Long getId() { return Id; } public void setServiceTypeName(String serviceName) { this.serviceTypeName=serviceName; } public String getServiceTypeName() { return serviceTypeName; } } package com.example.HibernateDataManager; public class ValidateConfiguration { private Long Id; private String fieldName; private String modeValue; public ValidateConfiguration() { } public void setId(Long serviceID) { this.Id=serviceID; } public Long getId() { return Id; } public void setFieldName(String fieldName) { this.fieldName=fieldName; } public String getFieldName() { return fieldName; } public void setModeValue(String modevalue) { this.modeValue=modevalue; } public String getModeValue() { return modeValue; } } package com.arosys.HibernateDataManager; import java.util.Iterator; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class Main { public static void main(String s[]) { try{ SessionFactory factory=new Configuration().configure().buildSessionFactory(); Session session=factory.openSession(); String sql_query= "from ValidateConfiguration"; Query query=session.createQuery(sql_query); System.out.println(query); for(Iterator it=query.iterate();it.hasNext();) { ValidateConfiguration std = ( ValidateConfiguration) it.next(); System.out.println("serviceTypeID: " + std.getId()); System.out.println("FieldName: " + std.getFieldName()); // System.out.println("ModeValue: " + validateconfig.getModeValue()); } session.close(); }catch(Exception e){e.printStackTrace();} } }
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>