luchob/softuni-sep-2023

Проблем при тестове.

Closed this issue · 2 comments

Поставете връзка към проекта си тук.

Здравей, Лъчо! При създаването на тестов обект ми дава следната грешка:(ERROR 25368 --- [ Test worker] o.h.engine.jdbc.spi.SqlExceptionHelper : user lacks privilege or object not found: ITEMS in statement [insert into items (buyer_id,category_id,description,image_id,name,price,seller_id,uploaded_date,id) values (?,?,?,?,?,?,?,?,default)]) не мога да разбера от къде идва този проблем при тестването и защо не успява да запази обекта в базата!

Привет!

Ако обърнеш внимание на първият ексепшън от многото, ще забележиш:

 Error executing DDL "create table items (id bigint generated by default as identity (start with 1), description TEXT not null, name varchar(255) not null, price numeric(38,2) not null, uploaded_date date not null, buyer_id bigint, category_id bigint, image_id bigint, seller_id bigint, primary key (id))" via JDBC [type not found or user lacks privilege: TEXT]

TEXT не е стандартен SQL тип и се поддържа от MySQL, но не и от HSQLDB. Този "native" тип си поставил ето тук в ItemEntity:

    @Column(nullable = false, columnDefinition = "TEXT")
    private String description;

Може би имаш различни опции, две от тях са:

  1. Не ползвай TEXT
  2. HSQLDB например, има т.нар. compatibility mode с mysql. Виж документацията в раздела с TEXT. Накратко, за да го активираш трябва да настроиш jdbc url в тестовия application.yaml подобно на jdbc:hsqldb:mem:testdb;sql.syntax_mys=true.

Поздрави,
Л.

Благодаря!