- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在构建 Spring+Hibernate Java 应用程序。我想添加一些集成测试,在内存数据库中完成。
所以,我的普通数据库是 Postgresql,我使用使用 Flyway 插件运行的 .sql 脚本来填充它。 ID 字段设置为 BIGSERIAL。我想使用内存数据库来类似于我的原始数据库,然后尝试用它测试一些类。我设法配置了几乎所有内容(我希望如此),但是当我运行测试类本身时,我收到 CREATE TABLE 脚本错误:
由以下原因引起:org.hsqldb.HsqlException:找不到类型或用户缺乏权限:BIGSERIAL
我发现我应该配置 HSQLDB,以启用 Postgresql 兼容性。使用 SET DATABASE SQL SYNTAX PGS TRUE 或等效的 URL 属性 sql.syntax_pgs=true 启用 PostgreSQL 的非标准功能。
我使用 persistence.xml 来定义正常和测试持久单元。这是负责定义测试持久性单元的片段:
<persistence-unit name="testJPA">
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
<property name="hibernate.connection.username" value="sa"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.connection.url" value="jdbc:hsqldb:mem:butterfly;sql.syntax_pgs=true"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
然后我使用配置类进行测试:
@Configuration
@EnableAutoConfiguration
@ComponentScan(basePackages = {"core.utilities"} )
@EnableTransactionManagement
public class TestsInitializer {
@Bean
public LocalEntityManagerFactoryBean entityManagerFactory() {
LocalEntityManagerFactoryBean factoryBean = new LocalEntityManagerFactoryBean();
factoryBean.setPersistenceUnitName("testJPA");
return factoryBean;
}
}
在测试类本身中:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { TestsInitializer.class }/*, loader = AnnotationConfigContextLoader.class*/)
@Transactional
public class GenreBATest {
@Autowired
private GenreBA genreBA;
@Test
public void testFindAllAccounts() {
//whatever
}
}
我在 URL 末尾添加了所需的属性,在互联网上找到了该属性的示例,但这并不能解决我的问题。
我仍然收到:消息:找不到类型或用户缺乏权限:BIGSERIAL
我做错了什么?
最佳答案
好吧,我发现脚本是由 Flyway 运行的,忽略了 persistence.xml 中所有可能的语法命令。 Flyway 与 HSQLDB 一起运行,因为我在测试配置类中使用了 @EnableAutoConfiguration,没有排除 :) 我通过艰苦的方式了解到 Spring Boot 已经配置 Hibernate 以基于内存数据库的实体创建模式。所以我根本不需要使用数据库脚本,它们是偶然运行的。
关于java - HSQLDB 与 Postgresql : type not found or user lacks privilege: BIGSERIAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47702513/
在MySQL中,执行FLUSH TABLES, PRIVILEGES;和执行FLUSH TABLES;再执行FLUSH PRIVILEGES;效果一样吗?此外,这是否适用于任何刷新选项(FLUSH L
我和一名团队成员都被难住了,因为向远程用户授予权限的命令失败了,但没有错误。使用 CREATE USER 已成功将新用户添加到 mysql.user,但 GRANT PRIVILEGES 后跟 FLU
完全信任是否与以管理员身份运行相同?我读过一些说明“要使其正常工作,应用程序必须是完全信任的应用程序”的内容。这与您必须具有管理员权限才能运行应用程序相同吗?如果不是,有什么区别?如何判断应用程序是否
你能告诉我如何使用 psql 控制台检查函数的权限,但又不会被源代码和说明淹没吗(比如使用\df+ 时)。 最佳答案 对于更简单的查询,使用: SELECT proacl FROM pg_proc W
考虑以下代码: function Dog() { this.foo = function() {}; this.walk = function() { if(c
我使用的是 Windows 8.1 64 位计算机。我安装了 XAMPP 5.6.3。直到昨天一切都工作正常。我进入 phpMyAdmin 创建一个新数据库。当我进入数据库选项卡时;在“创建新数据库”
当我授予“ALL PRIVILEGES”时会授予哪些权限? -> ALL [PRIVILEGES] Grant all privileges at specified access level exc
大约在0.6版,privileged被引入docker。 使用该参数,container内的root拥有真正的root权限。 否则,container内的root只是外部的一个普通用户权限。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我对Docker技术有点陌生,但是,我想在整个基础架构中部署几个BGP BIRD容器。我想使用Dockerfile构建自动化容器创建,但是,如果不给容器“特权”模式,就无法在Docker中运行BIRD
我尝试使用此 SQL 代码来启用数据库创建 使用授予选项将 *.* 上的所有权限授予 'myuser'@'%'; 但它不起作用。 我已在Windows Azure 托管中创建了我的phpMyadmin
我发出以下命令以允许从任何主机进行 root 登录 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxxx' WITH GRANT
如何在不添加 XP 主题的情况下添加 UAC list ? 我尝试了这个 list :
有没有办法将docker环境分配给多个USB设备,比如/dev/video0, /dev/video4 and /dev/ttyUSB4? 如果是单个设备,则可能是 docker run -t -i
我正在经历一种与 DEFAULT PRIVILEGES 相关的奇怪且(对我而言) 无法解释的行为。一旦在数据库范围内授予默认权限,似乎就不能仅针对特定模式撤销默认权限。我目前正在 CentOS 上使用
我试图向远程 MySQL 用户授予 ALTER TABLE 权限,但是当我执行查询时,它会因错误而中断:“ALTER 命令被拒绝给用户 'remotetest'@'*****' 对于表'RemoteT
我希望使用 pymysql 模块根据用户输入自动创建数据库和用户。 我希望向一个数据库中新创建的用户授予所有权限: cur.execute("GRANT ALL PRIVILEGES ON %s.*
我试图理解并理解何时在 JavaScript 中使用私有(private)方法以及何时使用特权方法。根据这篇文章:Private Members in JavaScript ,对象的私有(privat
我的 Web 应用程序有问题:在我的管理 bean 中: private boolean isUserInDB() { List users = userFacade.findByLogin
在我的 Firefox OS 应用中,我想使用 XHR,因此我在 list 文件中将 type 设置为 privileged。 到目前为止我尝试过的轮播插件:Jssor和 Scooch ,当设置此类型
我是一名优秀的程序员,十分优秀!