java - jdbc :embedded-database throwing HsqlException

标签 java hibernate spring hsqldb

我正在尝试使用标签在我的 Spring 应用程序中创建一个测试数据库。但是,当我尝试访问数据库时,出现以下异常:

org.hsqldb.HsqlException: user lacks privilege or object not found: PRODUCT

我将其声明如下:

<jdbc:embedded-database id="dataSource">
    <jdbc:script location="classpath:schema.sql"/>
    <jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="packagesToScan" value="com.blah.domain" />
</bean>

这是我的 sql 文件:

create schema pr7;

create table pr7.package_type (
  id bigint primary key ,
  description varchar(255),
  type varchar(255),
  version int
);

create table pr7.product (
  id bigint primary key,
  ca_product varchar(255),
  description varchar(255),
  product_id varchar(255),
  product_name varchar(255),
  package_type bigint,
  version int,
  end_date date,
  start_date date,
  foreign key (package_type) references package_type(id)
);

create table pr7.upgrade_type (
  id bigint primary key,
  description varchar(255),
  type varchar(255),
  version int
);

create table pr7.upgrade (
  id bigint primary key,
  description varchar(255),
  name varchar(255),
  upgrade_type bigint,
  version int,
  foreign key (upgrade_type) references upgrade_type(id)
);

create table pr7.upgrade_product (
  product_id bigint,
  upgrade_id bigint,
  foreign key (product_id) references product(id),
  foreign key (upgrade_id) references upgrade(id),
  primary key (product_id, upgrade_id)
);

create table pr7.user_role (
  id bigint primary key ,
  description varchar(255),
  type varchar(255),
  version int
);
create table pr7.rules_user (
  id bigint primary key,
  domain_account bit,
  fullname varchar(255),
  password varchar(255),
  username varchar(255),
  user_role bigint,
  version int,
  foreign key (user_role) references user_role(id)
);

insert into pr7.package_type (id, description, type) values (1, 'PackageType 1', 'PackageType 1');
insert into pr7.package_type (id, description, type) values (2, 'PackageType 2', 'PackageType 2');

insert into pr7.product (id, ca_product, description, product_id, product_name, package_type) values (1, 'Product 1', 'Product 1', 'Prod1', 'Product 1', 1);
insert into pr7.product (id, ca_product, description, product_id, product_name, package_type) values (2, 'Product 2', 'Product 2', 'Prod2', 'Product 2', 1);
insert into pr7.product (id, ca_product, description, product_id, product_name, package_type) values (3, 'Product 3', 'Product 3', 'Prod3', 'Product 3', 1);
insert into pr7.product (id, ca_product, description, product_id, product_name, package_type) values (4, 'Product 4', 'Product 4', 'Prod4', 'Product 4', 1);
insert into pr7.product (id, ca_product, description, product_id, product_name, package_type) values (5, 'Product 5', 'Product 5', 'Prod5', 'Product 5', 1);
insert into pr7.product (id, ca_product, description, product_id, product_name, package_type) values (6, 'Product 6', 'Product 6', 'Prod6', 'Product 6', 1);
insert into pr7.product (id, ca_product, description, product_id, product_name, package_type) values (7, 'Product 7', 'Product 7', 'Prod7', 'Product 7', 1);
insert into pr7.product (id, ca_product, description, product_id, product_name, package_type) values (8, 'Product 8', 'Product 8', 'Prod8', 'Product 8', 1);
insert into pr7.product (id, ca_product, description, product_id, product_name, package_type) values (9, 'Product 9', 'Product 9', 'Prod9', 'Product 9', 1);
insert into pr7.product (id, ca_product, description, product_id, product_name, package_type) values (10, 'Product 10', 'Product 10', 'Prod10', 'Product 10', 1);

insert into pr7.upgrade_type (id, description, type) values (1, 'UpgradeType 1', 'UpgradeType 1');
insert into pr7.upgrade_type (id, description, type) values (2, 'UpgradeType 2', 'UpgradeType 2');

insert into pr7.upgrade (id, description, name, upgrade_type) values (1, 'Upgrade 1', 'Upgrade 1', 1);
insert into pr7.upgrade (id, description, name, upgrade_type) values (2, 'Upgrade 2', 'Upgrade 2', 1);
insert into pr7.upgrade (id, description, name, upgrade_type) values (3, 'Upgrade 3', 'Upgrade 3', 1);
insert into pr7.upgrade (id, description, name, upgrade_type) values (4, 'Upgrade 4', 'Upgrade 4', 1);
insert into pr7.upgrade (id, description, name, upgrade_type) values (5, 'Upgrade 5', 'Upgrade 5', 1);
insert into pr7.upgrade (id, description, name, upgrade_type) values (6, 'Upgrade 6', 'Upgrade 6', 1);
insert into pr7.upgrade (id, description, name, upgrade_type) values (7, 'Upgrade 7', 'Upgrade 7', 1);
insert into pr7.upgrade (id, description, name, upgrade_type) values (8, 'Upgrade 8', 'Upgrade 8', 1);
insert into pr7.upgrade (id, description, name, upgrade_type) values (9, 'Upgrade 9', 'Upgrade 9', 1);
insert into pr7.upgrade (id, description, name, upgrade_type) values (10, 'Upgrade 10', 'Upgrade 10', 1);
insert into pr7.upgrade (id, description, name, upgrade_type) values (11, 'Upgrade 11', 'Upgrade 11', 1);
insert into pr7.upgrade (id, description, name, upgrade_type) values (12, 'Upgrade 12', 'Upgrade 12', 1);

insert into pr7.upgrade_product (upgrade_id, product_id) values (1, 1);
insert into pr7.upgrade_product (upgrade_id, product_id) values (2, 2);
insert into pr7.upgrade_product (upgrade_id, product_id) values (3, 3);
insert into pr7.upgrade_product (upgrade_id, product_id) values (4, 4);
insert into pr7.upgrade_product (upgrade_id, product_id) values (5, 5);
insert into pr7.upgrade_product (upgrade_id, product_id) values (6, 6);
insert into pr7.upgrade_product (upgrade_id, product_id) values (7, 7);
insert into pr7.upgrade_product (upgrade_id, product_id) values (8, 8);
insert into pr7.upgrade_product (upgrade_id, product_id) values (9, 9);
insert into pr7.upgrade_product (upgrade_id, product_id) values (10, 10);
insert into pr7.upgrade_product (upgrade_id, product_id) values (11, 1);
insert into pr7.upgrade_product (upgrade_id, product_id) values (11, 2);
insert into pr7.upgrade_product (upgrade_id, product_id) values (12, 1);
insert into pr7.upgrade_product (upgrade_id, product_id) values (12, 2);
insert into pr7.upgrade_product (upgrade_id, product_id) values (12, 3);
insert into pr7.upgrade_product (upgrade_id, product_id) values (12, 4);
insert into pr7.upgrade_product (upgrade_id, product_id) values (12, 5);
insert into pr7.upgrade_product (upgrade_id, product_id) values (12, 6);
insert into pr7.upgrade_product (upgrade_id, product_id) values (12, 7);
insert into pr7.upgrade_product (upgrade_id, product_id) values (12, 8);
insert into pr7.upgrade_product (upgrade_id, product_id) values (12, 9);
insert into pr7.upgrade_product (upgrade_id, product_id) values (12, 10);

这是访问它的类

public class HibernateProductDao implements ProductDao{
{
    @Autowired
    private SessionFactory sessionFactory;

    @Override
    public List<Product> getProducts() {
        Session session = sessionFactory.getCurrentSession();
        return (List<Product>)session.createQuery("from Product").list();
    }
}

异常在返回行抛出。

有关如何使其正常工作的任何帮助吗?

最佳答案

很可能架构名称 PR7 被忽略,它会在默认 PUBLIC 架构中查找 PRODUCT 表。

关于java - jdbc :embedded-database throwing HsqlException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6775094/

相关文章:

java - Spring 实用程序 :map injection

java - Spring Web 应用程序上的 Hibernate 集成

java - Assert.notThrown 可以在抛出异常时指定一条消息

java - 设置 NetworkImageView 与 Volley 禁用图像的持有者

java - 使用 Picasso Library 目标不能为空

java - 如何使用java中的正则表达式将字符串中的特殊字符}}替换为 ""

java - HQL中空引用对象的引用属性

java - 是否可以在 displayMsg() 函数中访问 getVal() 函数?

hibernate - 连接字段上的 JPA 查询过滤器

java - 在多线程中 hibernate @GeneratedValue序列