Org.springframework.dao.InvalidDataAccessResourceUsageException: ошибка при выполнении изолированной работы; SQLJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Org.springframework.dao.InvalidDataAccessResourceUsageException: ошибка при выполнении изолированной работы; SQL

Сообщение 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

Подробнее здесь: https://stackoverflow.com/questions/766 ... -performin
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»