不导出Hibernate + HSQLDB架构(Hibernate + HSQLDB schema is not exported)
我有基于Spring-MVC的Web应用程序。 我已经将它与Hibernate 3.6.0集成在一起。 当我试图保存名为User的实体时,我得到:
org.hsqldb.HsqlException:user缺少未找到的权限或对象:USER
我发现数据库中没有表USER但是为什么? 弹簧ServletDispatcher的配置文件片段:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="org.hsqldb.jdbcDriver"></property> <property name="url" value="jdbc:hsqldb:file: db/autostop; shutdown=true"></property> <property name="username" value="SA"></property> <property name="password" value=""></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="packagesToScan" value="prv.bladositto.autostop.persistance.hibernate.model"/> <property name="hibernateProperties"> <props> <prop key="dialect">org.hibernate.dialect.HSQLDialect</prop> <prop key="show_sql">true</prop> <prop key="hbm2ddl.auto">create-drop</prop> </props> </property> </bean>
根异常堆栈跟踪:
org.hsqldb.HsqlException: user lacks privilege or object not found: USER org.hsqldb.error.Error.error(Unknown Source) org.hsqldb.error.Error.error(Unknown Source) org.hsqldb.SchemaManager.getTable(Unknown Source) org.hsqldb.ParserDQL.readTableName(Unknown Source) org.hsqldb.ParserDQL.readSimpleRangeVariable(Unknown Source) org.hsqldb.ParserDML.compileInsertStatement(Unknown Source) org.hsqldb.ParserCommand.compilePart(Unknown Source) org.hsqldb.ParserCommand.compileStatement(Unknown Source) org.hsqldb.Session.compileStatement(Unknown Source) org.hsqldb.StatementManager.compile(Unknown Source) org.hsqldb.Session.execute(Unknown Source) org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source) org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source) org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:524) org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:116) org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.prepare(IdentityGenerator.java:90) org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:54) org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2327) org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2834) org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71) org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273) org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:320) org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203) org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93) org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713) org.hibernate.impl.SessionImpl.save(SessionImpl.java:701) org.hibernate.impl.SessionImpl.save(SessionImpl.java:697) org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:686) org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:1) org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406) org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:683) prv.bladositto.autostop.persistance.hibernate.UserServiceImpl.save(UserServiceImpl.java:23) prv.bladositto.autostop.controllers.UsersController.createUser(UsersController.java:40) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:800) javax.servlet.http.HttpServlet.service(HttpServlet.java:757) javax.servlet.http.HttpServlet.service(HttpServlet.java:847) org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:74) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
编辑
我正在将我的应用程序部署到JBoss AS 7.它位于Ubuntu上的/usr/share/JBoss..7/。 也许这很重要。
I have web application based on Spring-MVC. I've integrated it with Hibernate 3.6.0. When I'm trying to save entity named User I get :
org.hsqldb.HsqlException: user lacks privilege or object not found: USER
I figured out that there is no table USER in the database but why? My configuration file's fragment for springs ServletDispatcher:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="org.hsqldb.jdbcDriver"></property> <property name="url" value="jdbc:hsqldb:file: db/autostop; shutdown=true"></property> <property name="username" value="SA"></property> <property name="password" value=""></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="packagesToScan" value="prv.bladositto.autostop.persistance.hibernate.model"/> <property name="hibernateProperties"> <props> <prop key="dialect">org.hibernate.dialect.HSQLDialect</prop> <prop key="show_sql">true</prop> <prop key="hbm2ddl.auto">create-drop</prop> </props> </property> </bean>
Root exception stack trace:
org.hsqldb.HsqlException: user lacks privilege or object not found: USER org.hsqldb.error.Error.error(Unknown Source) org.hsqldb.error.Error.error(Unknown Source) org.hsqldb.SchemaManager.getTable(Unknown Source) org.hsqldb.ParserDQL.readTableName(Unknown Source) org.hsqldb.ParserDQL.readSimpleRangeVariable(Unknown Source) org.hsqldb.ParserDML.compileInsertStatement(Unknown Source) org.hsqldb.ParserCommand.compilePart(Unknown Source) org.hsqldb.ParserCommand.compileStatement(Unknown Source) org.hsqldb.Session.compileStatement(Unknown Source) org.hsqldb.StatementManager.compile(Unknown Source) org.hsqldb.Session.execute(Unknown Source) org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source) org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source) org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:524) org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:116) org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.prepare(IdentityGenerator.java:90) org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:54) org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2327) org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2834) org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71) org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273) org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:320) org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203) org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93) org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713) org.hibernate.impl.SessionImpl.save(SessionImpl.java:701) org.hibernate.impl.SessionImpl.save(SessionImpl.java:697) org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:686) org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:1) org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406) org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:683) prv.bladositto.autostop.persistance.hibernate.UserServiceImpl.save(UserServiceImpl.java:23) prv.bladositto.autostop.controllers.UsersController.createUser(UsersController.java:40) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:800) javax.servlet.http.HttpServlet.service(HttpServlet.java:757) javax.servlet.http.HttpServlet.service(HttpServlet.java:847) org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:74) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
EDIT
I'm deploying my application to JBoss AS 7. It's located on /usr/share/JBoss..7/ on Ubuntu. Maybe it's important.
原文:https://stackoverflow.com/questions/12073563
最满意答案
Dice
是一个来自tuple
的派生类,它是一个长度为2的tuple
。你可以看到例如
>>> print yaml.dump(Dice(3,6)) !!python/object/new:__main__.Dice - !!python/tuple [3, 6]
所以在你的上下文中,它运行良好,它确实是长度为2的元组,因此可以解析所使用的字符串。
Dice
is a derived class fromtuple
, and it is atuple
of length 2.You can see for example that
>>> print yaml.dump(Dice(3,6)) !!python/object/new:__main__.Dice - !!python/tuple [3, 6]
So in your context, it works well, it is indeed a tuple of length 2 and so can resolve the string used.
相关问答
更多-
a = "123ab5" b = ''.join(map(lambda x: str(int(x) + 1) if x.isdigit() else x, a)) 要么: b = ''.join(str(int(x) + 1) if x.isdigit() else x for x in a) 要么: import string b = a.translate(string.maketrans('0123456789', '1234567890')) 在任何这些情况下: # b == "234ab6 ...
-
根据我的机器,连接(显着)更快。 但是在风格上,如果表现并不重要,我愿意付出替代代价。 那么,如果我需要格式化,就不需要再问这个问题,除了使用插值/模板之外,别无选择。 >>> import timeit >>> def so_q_sub(n): ... return "%s%s/%d" % (DOMAIN, QUESTIONS, n) ... >>> so_q_sub(1000) 'http://stackoverflow.com/questions/1000' >>> def so_q_cat(n): ...
-
字符串简单替换(String Simple Substitution)[2022-01-20]
那些看起来不像你试图翻译的正则表达式,它们看起来更像unix shell globs。 Python有一个模块用于执行此操作。 它不知道你使用的“+”语法,但我的shell也不知道,我认为语法是非标准的。 >>> import fnmatch >>> fnmatch.fnmatch("fooabcdef", "*abcde?") True >>> help(fnmatch.fnmatch) Help on function fnmatch in module fnmatch: fnmatch(name, ... -
字符串替换(substitution in string)[2023-04-21]
my $t =~ s/^\.\///; 你需要逃避点和斜线。 替换是s/match/replace/ 。 如果你擦除,那就是s/match// 。 你想匹配“以点和斜线开头”,那就是^\.\/ 。 my $t =~ s/^\.\///; You need to escape the dot and the slash. The substitution is s/match/replace/. If you erase, it's s/match//. You want to match "starts ... -
如果没有进行字符串替换,Python的string.replace会返回什么? 它返回原始字符串。 即使没有改变,Python的file.open(f,'w')是否总是触摸文件? 不仅仅是触摸文件,它会销毁用来包含的任何内容。 因此,如果文件需要用replaText if replacedText != content重新编写,并且仅在写入模式下打开文件(如果是这种情况): count = 0 for match in all_files('*.html', '.'): # all_files ...
-
mystring.replace('%', '%%')可能适合您的需求。 %%逃脱% 。 mystring.replace('%', '%%') might suit your needs. %% escapes a %.
-
复杂的字符串替换(complex string substitution)[2023-11-09]
你应该使用replace而不是sed或regex : #! /bin/bash old=$(grep -aPo '/PageLabels\K[^"]*>>]>>' a.pdf) ## Get Old /PageLabels code new=$(/tmp/get_correct_code.sh ) ## Get New /PageLabels code cat a.pdf |replace "$old" "$new" > new_a.pdf 从手册页: DESCRIPTION The re ... -
Dice是一个来自tuple的派生类,它是一个长度为2的tuple 。 你可以看到例如 >>> print yaml.dump(Dice(3,6)) !!python/object/new:__main__.Dice - !!python/tuple [3, 6] 所以在你的上下文中,它运行良好,它确实是长度为2的元组,因此可以解析所使用的字符串。 Dice is a derived class from tuple, and it is a tuple of length 2. You can see ...
-
让MySQLdb完成整个参数替换。 在这种情况下,期望的参数values应该是序列(1,2,3) ,而不是字符串'1,2,3' : query = """SELECT id, name, image_id FROM users WHERE id IN %s """ values = uids results = dbc.getAll(query, [values]) Let MySQLdb do the entire argumen ...
-
正则表达式的许多性能开销来自编译正则表达式。 您应该将正则表达式的编译移出循环。 这应该会给你一个相当大的改进: pattern1 = re.compile('[^0-9a-zA-Z]+') pattern2 = re.compile('\s+') for k in range(len(titles)): #remove all non-alphanumeric characters s = re.sub(pattern1,' ',titles[k]) #remove extra ...