Я пытаюсь создать репозиторий JPA следующим образом и сталкиваюсь с несколькими проблемами
- Я хочу перевести все весенние исключения в бизнес-исключения как сервисный уровень (не веб-служба / служба отдыха)
- Все примеры и решения, с которыми я сталкиваюсь в документах stackoevrflow и spring, связаны с web
@ControllerAdvice
, я хочу иметь возможность переводить исключение на уровне обслуживания, которое позже может быть подключено к @RestController
или @Controller
, если это необходимо. - Я думаю, что реальная проблема, с которой я сталкиваюсь, состоит в том, чтобы отловить исключения всех видов
Репозиторий
public interface UserRepository extends PagingAndSortingRepository<User, UUID>, Service<User, UUID> {
//@PreAuthorize("hasRole('W_USER')")
Optional<User> findByUsername(String username);
}
и права
<mapped-superclass class="xx.xx.BaseModel" access="FIELD">
<attributes>
<id name="uid">
<column column-definition="BINARY(16)" />
<generated-value strategy="AUTO" />
</id>
<basic name="creationDate">
<column
column-definition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP"
insertable="false" updatable="false" />
</basic>
<basic name="modificationDate">
<column
column-definition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP"
insertable="false" updatable="false" />
</basic>
<version name="version"></version>
</attributes>
</mapped-superclass>
<entity class="xx.xx.User">
<table name="USER">
<index column-list="email,username,enabled"></index>
</table>
<attributes>
<basic name="email">
</basic>
<basic name="firstName"></basic>
...
<basic name="username" optional="false">
<column unique="true"/>
</basic>
<basic name="email" optional="false">
<column unique="true"/>
</basic>
<many-to-many name="roles" fetch="LAZY">
</many-to-many>
</attributes>
</entity>