SQLite - 没有用于JDBC类型的方言映射:0(Hibernate) [英] SQLite - No Dialect mapping for JDBC type: 0 (Hibernate)

查看:382
本文介绍了SQLite - 没有用于JDBC类型的方言映射:0(Hibernate)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我想知道一些具有特定ID的条目是否存在于表

 查询查询= entityManager 
.createNativeQuery(SELECT logo_id FROM logo WHERE logo_id =?);
query.setParameter(1,id);
int count = query.getResultList()。size();

但是,如果我执行查询,我会收到此错误。

  javax.persistence.PersistenceException:org.hibernate.MappingException:否JDBC类型的方言映射:0 
在org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl .java:1367)
在org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1295)
在org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:265)
at at .beko.rainstar2.service.impl.LogoServiceImpl.hasLogoWithId(LogoServiceImpl.java:59)
at at .beko.rainstar2.service.impl.LogoServiceImpl.saveLogo(LogoServiceImpl.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25 )
在java.lang.reflect.Method.invoke(Method.java:597)
在org.springframework.aop.su pport.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
在org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
在org.springframework.aop.framework.ReflectiveMethodInvocation。继续(ReflectiveMethodInvocation.java:150)
在org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation。 java:172)
在org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
在$ Proxy53.saveLogo(未知来源)
at at .beko.rainstar2 .ui.controller.OptionController.btnSavePic_click(OptionController.java:204)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcce ssorImpl.java:25)
在java.lang.reflect.Method.invoke(Method.java:597)
在com.sun.el.parser.AstValue.invoke(AstValue.java:238)
在com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
在com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
在org.primefaces.component.fileupload.FileUpload.broadcast(FileUpload.java:279)
在javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:759)
在javax.faces.component .UIViewRoot.processDecodes(UIViewRoot.java:935)
在com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
在com.sun.faces.lifecycle.Phase.doPhase (Phase.java:101)
在com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
在javax.faces.webapp.FacesServlet.service(FacesServlet.java:593 )
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
在org.apache.catalina.core.Applica tionFilterChain.doFilter(ApplicationFilterChain.java:210)
在org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:77)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:243)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at.beko.rainstar2.ui.filter.CustomCharacterEncodingFilter.doFilter(CustomCharacterEncodingFilter。 java:25)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:311)
在org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java: 116)
在org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilte r(FilterSecurityInterceptor.java:83)
在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)
在org.springframework.security.web.access.ExceptionTranslationFilter。 doFilter(ExceptionTranslationFilter.java:113)
在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)
在org.springframework.security.web.authentication.AnonymousAuthenticationFilter。 doFilter(AnonymousAuthenticationFilter.java:113)
在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)
在org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter。 doFilter(SecurityContextHolderAwareRequestFilter.java:54)
在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)
在org.springframework.security.web.savedrequest.RequestCacheAwareFilter。的doFilter(RequestCacheAwareF ilter.java:45)
在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)
在org.springframework.security.web.authentication.preauth.Abs​​tractPreAuthenticatedProcessingFilter。 doFilter(AbstractPreAuthenticatedProcessingFilter.java:88)
在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)
在org.springframework.security.web.context.SecurityContextPersistenceFilter。 doFilter(SecurityContextPersistenceFilter.java:87)
在org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:323)
在org.springframework.security.web.FilterChainProxy.doFilter( FilterChainProxy.java:173)
在org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
在org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java: 259)
在org.apache.catalina.core.ApplicationF ilterChain.internalDoFilter(ApplicationFilterChain.java:243)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
在org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:224)
在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java: 472)
在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
在org .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
在org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
在org.apache.coyote .AbstractPr otocol $ AbstractConnectionHandler.process(AbstractProtocol.java:539)
在org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:300)
在java.util.concurrent。 ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908)
在java.lang.Thread.run(Thread。 java:619)



引起的:org.hibernate.MappingException:没有JDBC类型的方言映射:0
在org.hibernate.dialect.TypeNames。 get(TypeNames.java:76)
在org.hibernate.dialect.TypeNames.get(TypeNames.java:99)
在org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:565)
在org.hibernate.loader.custom.CustomLoader $ Metadata.getHibernateType(CustomLoader.java:660)
在org.hibernate.loader.custom.CustomLoader $ ScalarResultColumnProcessor.performDiscovery(CustomLoader.java:564)
在org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:580)
在org.hibernate.loader.Loader.getResultSet(Loader.java:1961)
在org.hibernate.loader.Loader.doQuery(Loader.java:829)

org.hibernate。 loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289)
在org.hibernate.loader.Loader.doList(Loader.java:2438)
在org.hibernate.loader.Loader.doList(Loader。 java:2424)
在org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2254)
在org.hibernate.loader.Loader.list(Loader.java:2249)
在org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:331)
在org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1784)
在org.hibernate.internal .AbstractSessionImpl.list(AbstractSessionImpl.java:226)
在org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:156)
在org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java :256)
... 71更多

如果我使用这个代码,没有问题。

 查询查询= e ntityManager 
.createNativeQuery(SELECT COUNT(*)FROM logo WHERE logo_id =?);
query.setParameter(1,id);
Object o = query.getResultList()。get(0);
int count = Integer.valueOf(o.toString());

为什么我在其他代码版本中收到错误,因为select语句必须有效!



谢谢。



认为matthias



更新:



applicationContext.xml

 < beans xmlns = http://www.springframework.org/schema/beans
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instancexmlns:p =http:// www。 springframework.org/schema/p
xmlns:aop =http://www.springframework.org/schema/aopxmlns:context =http://www.springframework.org/schema/context
xmlns:jee =http://www.springframework.org/schema/jeexmlns:task =http://www.springframework.org/schema/task
xmlns:tx = http://www.springframework.org/schema/tx
xsi:schemaLocation =
http://www.springframework.org/schema/aop http://www.springframework.org /schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spri ng-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http ://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/ TX /弹簧-TX-3.1.xsd>

< context:component-scan base-package =at.beko.rainstar2/>

< tx:注释驱动的transaction-manager =transactionManager/>

< bean id =entityManagerFactory
class =org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean>
< property name =dataSourceref =rainstarDataSource/>
< property name =persistenceUnitNamevalue =rainstar-pu/>
< property name =jpaVendorAdapter>
< bean class =org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter>
< property name =showSqlvalue =true/>
< property name =generateDdlvalue =true/>
< property name =databasePlatformvalue =at.beko.rainstar2.dialect.SQLiteDialect/>
< / bean>
< / property>
< / bean>

< bean id =rainstarDataSourceclass =org.springframework.jndi.JndiObjectFactoryBean>
< property name =jndiNamevalue =java:comp / env / jdbc / rainstar_ds>< / property>
< / bean>

< bean id =transactionManagerclass =org.springframework.orm.jpa.JpaTransactionManager>
< property name =entityManagerFactoryref =entityManagerFactory/>
< / bean>

解决方案

JDBC类型:0 表示 Null java.sql.Types resultSet 必须包含空值,但hibernate无法支持SQLite的这种数据类型。因此,您应该在自定义 at.beko.rainstar2.dialect.SQLiteDialect 中设置此映射。

  public class SQLiteDialect extends Dialect {
public SQLiteDialect(){
super();
...
...
...
registerColumnType(Types.NULL,null);
registerHibernateType(Types.NULL,null);
}
...
...
}


I have a SQLite Datatable with string value as id and a BLOB value for a picture.

I want to know if some entry with a specific id exists in the table.

Query query = entityManager
            .createNativeQuery("SELECT logo_id FROM logo WHERE logo_id = ?");
    query.setParameter(1, id);
    int count = query.getResultList().size();

But if I execute the query I get this error.

javax.persistence.PersistenceException: org.hibernate.MappingException: No Dialect mapping for JDBC type: 0
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1367)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1295)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:265)
at at.beko.rainstar2.service.impl.LogoServiceImpl.hasLogoWithId(LogoServiceImpl.java:59)
at at.beko.rainstar2.service.impl.LogoServiceImpl.saveLogo(LogoServiceImpl.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy53.saveLogo(Unknown Source)
at at.beko.rainstar2.ui.controller.OptionController.btnSavePic_click(OptionController.java:204)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(AstValue.java:238)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at org.primefaces.component.fileupload.FileUpload.broadcast(FileUpload.java:279)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:759)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at at.beko.rainstar2.ui.filter.CustomCharacterEncodingFilter.doFilter(CustomCharacterEncodingFilter.java:25)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter.doFilter(AbstractPreAuthenticatedProcessingFilter.java:88)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)



Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: 0
at org.hibernate.dialect.TypeNames.get(TypeNames.java:76)
at org.hibernate.dialect.TypeNames.get(TypeNames.java:99)
at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:565)
at org.hibernate.loader.custom.CustomLoader$Metadata.getHibernateType(CustomLoader.java:660)
at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.performDiscovery(CustomLoader.java:564)
at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:580)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1961)
at org.hibernate.loader.Loader.doQuery(Loader.java:829)
at 
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289)
at org.hibernate.loader.Loader.doList(Loader.java:2438)
at org.hibernate.loader.Loader.doList(Loader.java:2424)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2254)
at org.hibernate.loader.Loader.list(Loader.java:2249)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:331)
at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1784)
at org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:226)
at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:156)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:256)
... 71 more

And if I use this code , there are no probs.

Query query = entityManager
            .createNativeQuery("SELECT COUNT(*) FROM logo WHERE logo_id = ?");
    query.setParameter(1, id);
    Object o = query.getResultList().get(0);
    int count = Integer.valueOf(o.toString());

Why I'am getting an error in the other code version, because the select statement must be valid!?

Thanks.

regards matthias

Update:

applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:task="http://www.springframework.org/schema/task"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">

<context:component-scan base-package="at.beko.rainstar2" />

<tx:annotation-driven transaction-manager="transactionManager" />

<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="rainstarDataSource" />
    <property name="persistenceUnitName" value="rainstar-pu" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="showSql" value="true" />
            <property name="generateDdl" value="true" />
            <property name="databasePlatform" value="at.beko.rainstar2.dialect.SQLiteDialect" />
        </bean>
    </property>
</bean>

<bean id="rainstarDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/rainstar_ds"></property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>

解决方案

JDBC type: 0 means Null in java.sql.Types. The resultSet must contains null value, but hibernate could not support this datatype for SQLite. So you should set this mapping in your customize at.beko.rainstar2.dialect.SQLiteDialect.

public class SQLiteDialect extends Dialect {
    public SQLiteDialect() {
        super();
        ...
        ...
        ...
        registerColumnType(Types.NULL, "null");
        registerHibernateType(Types.NULL, "null");
    }
    ...
    ...
}

这篇关于SQLite - 没有用于JDBC类型的方言映射:0(Hibernate)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆