Tôi mới dùng hibernate và java. Tôi đang cố gắng để thực hiện truy vấn sql bản địa nhưng tôi đã bị mắc kẹt. Bất cứ ai có thể giúp tôi hoặc kiểm tra nơi tôi đang làm sai?Nhận ngoại lệ Không có ánh xạ đối tượng cho loại JDBC
mã java của tôi là:
try {
trns = session.beginTransaction();
String sql = "select principle,interest from salaryinfo where empid = " + selectedempid + "";
SQLQuery query = session.createSQLQuery(sql);
List<Object[]> rows = query.list();
for (Object[] row : rows) {
Salaryinfo si= new Salaryinfo();
si.setPrinciple(Float.parseFloat(row[0].toString()));
si.setInterest(Float.parseFloat(row[1].toString()));
sis.add(si);
}
Lỗi vết:
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)
.
.
.
.
tôi đã gỡ lỗi chương trình của tôi và thấy chương trình của tôi là vi phạm là trên dòng này SQLQuery query = session.createSQLQuery(sql);
Tệp cấu hình Hibernate:
<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>
Những cơ sở dữ liệu và Hibernate phương ngữ bạn đang sử dụng? Lưu ý rằng loại '7' là' java.sql.Types.REAL' –
Bạn đã không đặt addScaler Type .... Hãy thử truy vấn SQLQuery = session.createSQLQuery (sql) .addScalar ("nguyên tắc", mới FloatType()) .addScalar ("sở thích", FloatType mới()); –
Hiển thị cấu hình ngủ đông của bạn – Jens