Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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
Java 获取JDBC类型的无方言映射异常_Java_Hibernate_Jdbc - Fatal编程技术网

Java 获取JDBC类型的无方言映射异常

Java 获取JDBC类型的无方言映射异常,java,hibernate,jdbc,Java,Hibernate,Jdbc,我不熟悉hibernate和java。我正在尝试执行本机sql查询,但我被卡住了。有人能帮我解决或检查我哪里做错了吗 我的java代码是: 我确实调试了我的程序,发现我的程序正在中断,这一行是SQLQuery query=session.createSQLQuery(sql) 休眠配置文件: <hibernate-configuration> <session-factory> <property name="hibernate.byteco

我不熟悉hibernate和java。我正在尝试执行本机sql查询,但我被卡住了。有人能帮我解决或检查我哪里做错了吗

我的java代码是:

我确实调试了我的程序,发现我的程序正在中断,这一行是
SQLQuery query=session.createSQLQuery(sql)

休眠配置文件:

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">****</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/empdata</property>
        <property name="hibernate.connection.username">****</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

        <property name="hibernate.show_sql">false</property>
    <property name="hibernate.format_sql">false</property>
    <property name="hibernate.cache.use_query_cache">true</property>
    <property name="hibernate.c3p0.acquire_increment">1</property> 
    <property name="hibernate.c3p0.idle_test_period">10</property> <!-- seconds -->             
        <mapping resource="hibernate/Salaryinfo.hbm.xml" />   

    </session-factory>
</hibernate-configuration>

假的
com.mysql.jdbc.Driver
****
jdbc:mysql://localhost:3306/empdata
****
org.hibernate.dialogue.mysqlinnodbdialogue
假的
假的
真的
1.
10

您的数据库正在使用
REAL
数据类型,但您的方言不理解它,因此无法将其映射到其中一种Java类型。请参阅。

您需要放置
addScalar()。为了避免使用ResultSetMetadata的开销,或者为了更明确地显示返回的内容,可以使用
addScalar()

像这样:


您使用的是哪种数据库和Hibernate方言?请注意,类型
7
java.sql.Types.REAL
您没有设置addScaler类型…请尝试SQLQuery query=session.createSQLQuery(sql.addScalar)(“principle”,new FloatType()).addScalar(“interest”,new FloatType());显示你的冬眠状态configuration@PiyushGupta我试过这个…现在它对我有效,谢谢你节省我的时间。
Severe:   org.hibernate.MappingException: No Dialect mapping for JDBC type: 7
    at org.hibernate.dialect.TypeNames.get(TypeNames.java:56)
    at org.hibernate.dialect.TypeNames.get(TypeNames.java:81)
    at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:192)
    at org.hibernate.loader.custom.CustomLoader.getHibernateType(CustomLoader.java:161)
    at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:131)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1678)
    at org.hibernate.loader.Loader.doQuery(Loader.java:662)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
    at org.hibernate.loader.Loader.doList(Loader.java:2145)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
    at org.hibernate.loader.Loader.list(Loader.java:2024)
    .
    .
    .
    .
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">****</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/empdata</property>
        <property name="hibernate.connection.username">****</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

        <property name="hibernate.show_sql">false</property>
    <property name="hibernate.format_sql">false</property>
    <property name="hibernate.cache.use_query_cache">true</property>
    <property name="hibernate.c3p0.acquire_increment">1</property> 
    <property name="hibernate.c3p0.idle_test_period">10</property> <!-- seconds -->             
        <mapping resource="hibernate/Salaryinfo.hbm.xml" />   

    </session-factory>
</hibernate-configuration>
SQLQuery query = session.createSQLQuery(sql)
  .addScalar("principle", new FloatType())
  .addScalar("interest", new FloatType());