Я хочу протестировать свой UserRepository, но постоянно получаю эту ошибку ```org.springframework.dao.InvalidDataAccessResourceUsageException: ошибка при выполнении изолированной работы; SQL [нет данных]```` Я не знаю, где я ошибся. Я хочу использовать H2 в качестве базы данных для своих тестов, поэтому область зависимости h2 является тестовой. Я подумал, возможно, причина в этом
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "_USER_SEQ" not found (this database is empty); SQL statement:
select next_val as id_val from _user_seq for update [42104-214]
Но я не знаю, пожалуйста, помогите.
UserRepositoryTest:
package com.david.caterest.repository;
import com.david.caterest.entity.User;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import java.util.Optional;
import static org.assertj.core.api.Assertions.assertThat;
@DataJpaTest
class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
@Test
void shouldFindStudentWhenGivenExistentEmail() {
// given
String email = "test@gmail.com";
User user = new User();
user.setEmail(email);
// when(userRepository.findByEmail(email)).thenReturn(Optional.of(user));
userRepository.save(user);
// when
Optional result = userRepository.findByEmail(email);
// then
assertThat(result).isPresent();
assertThat(result.get()).isEqualTo(user);
}
@Disabled
@Test
void shouldNotFindStudentWhenGivenNonexistentEmail() {
}
}
Репозиторий пользователей:
public interface UserRepository extends JpaRepository {
Optional findByDisplayNameAndPassword(String username, String password);
Optional findByDisplayName(String username);
Optional findByEmail(String email);
Boolean existsByEmail(String email);
}
Пользователь:
package com.david.caterest.entity;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@Setter
@Getter
@RequiredArgsConstructor
@Entity
@Table(name = "_user")
public class User implements UserDetails {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Lob
@Column(length = 31_457_280) // 30MB
private Byte[] profilePicture;
// @NotBlank
private String displayName;
// @NotBlank
private String firstName;
// @NotBlank
private String lastName;
// @NotBlank
@Column(unique = true)
private String email;
// @NotBlank
private String password;
private String biography;
private LocalDate dateOfBirth;
private String telephoneNumber;
private String city;
private String country;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
private List
pictures = new ArrayList();
@Enumerated(EnumType.STRING)
private Role role;
@Override
public Collection
Подробнее здесь: https://stackoverflow.com/questions/766 ... -performin
Org.springframework.dao.InvalidDataAccessResourceUsageException: ошибка при выполнении изолированной работы; SQL ⇐ JAVA
Программисты JAVA общаются здесь
1729662785
Anonymous
Я хочу протестировать свой UserRepository, но постоянно получаю эту ошибку ```org.springframework.dao.InvalidDataAccessResourceUsageException: ошибка при выполнении изолированной работы; SQL [нет данных]```` Я не знаю, где я ошибся. Я хочу использовать H2 в качестве базы данных для своих тестов, поэтому область зависимости h2 является тестовой. Я подумал, возможно, причина в этом
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "_USER_SEQ" not found (this database is empty); SQL statement:
select next_val as id_val from _user_seq for update [42104-214]
Но я не знаю, пожалуйста, помогите.
UserRepositoryTest:
package com.david.caterest.repository;
import com.david.caterest.entity.User;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import java.util.Optional;
import static org.assertj.core.api.Assertions.assertThat;
@DataJpaTest
class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
@Test
void shouldFindStudentWhenGivenExistentEmail() {
// given
String email = "test@gmail.com";
User user = new User();
user.setEmail(email);
// when(userRepository.findByEmail(email)).thenReturn(Optional.of(user));
userRepository.save(user);
// when
Optional result = userRepository.findByEmail(email);
// then
assertThat(result).isPresent();
assertThat(result.get()).isEqualTo(user);
}
@Disabled
@Test
void shouldNotFindStudentWhenGivenNonexistentEmail() {
}
}
Репозиторий пользователей:
public interface UserRepository extends JpaRepository {
Optional findByDisplayNameAndPassword(String username, String password);
Optional findByDisplayName(String username);
Optional findByEmail(String email);
Boolean existsByEmail(String email);
}
Пользователь:
package com.david.caterest.entity;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@Setter
@Getter
@RequiredArgsConstructor
@Entity
@Table(name = "_user")
public class User implements UserDetails {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Lob
@Column(length = 31_457_280) // 30MB
private Byte[] profilePicture;
// @NotBlank
private String displayName;
// @NotBlank
private String firstName;
// @NotBlank
private String lastName;
// @NotBlank
@Column(unique = true)
private String email;
// @NotBlank
private String password;
private String biography;
private LocalDate dateOfBirth;
private String telephoneNumber;
private String city;
private String country;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
private List
pictures = new ArrayList();
@Enumerated(EnumType.STRING)
private Role role;
@Override
public Collection
Подробнее здесь: [url]https://stackoverflow.com/questions/76682077/org-springframework-dao-invaliddataaccessresourceusageexception-error-performin[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия