Spring Boot: @Service, @Repository, @TransactionalJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring Boot: @Service, @Repository, @Transactional

Сообщение Anonymous »

Небольшой вопрос о SpringBoot для новичков.
Я пытаюсь установить простое приложение, и у меня возникают проблемы с транзакциями. Я предполагаю, что делаю что-то не так или дизайн неправильный.
У меня есть сущность

Код: Выделить всё

@Entity
public @Data class UserAccount {

@NotNull
@Column(unique = true)
private String username;

@ManyToMany
@JoinTable(
name = "user_account_roles",
joinColumns = @JoinColumn(name = "user_account_id"),
inverseJoinColumns = @JoinColumn(name = "role_id"))
@SQLJoinTableRestriction("active  0")
private List roles;

@ManyToMany
@JoinTable(
name = "user_account_authorities",
joinColumns = @JoinColumn(name = "user_account_id"),
inverseJoinColumns = @JoinColumn(name = "authority_id"))
@SQLJoinTableRestriction("active  0")
private List authorities;

}
У меня есть репозиторий

Код: Выделить всё

@Transactional
@Repository
public interface UserAccountRepository extends NameableCrudRepository, JpaRepository {

UserAccount findByUsername(String username);

}
Затем я настраиваю свою службу аутентификации и использую это:

Код: Выделить всё

@Service
@Transactional(readOnly = true)
@RequiredArgsConstructor
public class CustomUserDetailsService implements UserDetailsService {

UserAccountRepository userAccountRepository;

@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
UserAccount user = userAccountRepository.findByUsername(username);
if (user == null) {
throw new UsernameNotFoundException("User Not Found with username: " + username);
}

Hibernate.initialize(user.roles());  new SimpleGrantedAuthority(authority.authority().toString())).toList();

return User.withUsername(user.username())
.password(user.password())
.authorities(authorities)
.roles(roles)
.build();
}
}
Когда я пытаюсь инициализировать коллекцию Lazy, я получаю:

Код: Выделить всё

JDBC exception executing SQL [select r1_0.user_account_id,r1_1.id,r1_1.active,r1_1.role from user_account_roles r1_0 join user_account_role r1_1 on r1_1.id=r1_0.role_id where r1_0.user_account_id=? and (r1_0.active  0)] [ERROR: current transaction is aborted, commands ignored until end of transaction block] [n/a]
Я предполагаю, что это потому, что у меня что-то неправильно настроено, когда дело доходит до транзакций...
Я добавил @EnableTransactionManagement в конфигурацию, но не уверен, что она действительно что-то делает.

Код: Выделить всё

@Configuration
@EnableWebSecurity
@EnableTransactionManagement
@RequiredArgsConstructor
public class WebSecurityConfig {

final UserAccountRepository userAccountRepository;
Я использую базу данных Postgres, если это на что-то влияет.
Заранее большое спасибо за вашу помощь!

Подробнее здесь: https://stackoverflow.com/questions/790 ... nsactional
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Должен быть одним из: service.start_sticky_compatibility, service.start_sticky, service.start_not_sticky, service.start_
    Гость » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Гость
  • Должен быть одним из: service.start_sticky_compatibility, service.start_sticky, service.start_not_sticky, service.start_
    Гость » » в форуме Android
    0 Ответы
    28 Просмотры
    Последнее сообщение Гость
  • Java Service Wrapper во время запуска JAR Application FOM Service Service
    Anonymous » » в форуме JAVA
    0 Ответы
    51 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между аннотациями @Component, @Repository и @Service в Spring?
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между аннотациями @Component, @Repository и @Service в Spring?
    Anonymous » » в форуме JAVA
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

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