
{
"time": "03-10-2024 14:37:40",
"status": 500,
"message": "An error occurred",
"stackTrace": "org.springframework.dao.DataIntegrityViolationException: could not delete: [com.cloud.atlas.domain.Permission#32]; SQL [UPDATE permission SET is_deleted = true WHERE id=?]; nested exception is org.hibernate.exception.DataException: could not delete: [ c o m . c l o u d . a t l a s . d o m a i n . P e r m i s s i o n # 3 2 ] \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . o r m . j p a . v e n d o r . H i b e r n a t e J p a D i a l e c t . c o n v e r t H i b e r n a t e A c c e s s E x c e p t i o n ( H i b e r n a t e J p a D i a l e c t . j a v a : 2 8 0 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . o r m . j p a . v e n d o r . H i b e r n a t e J p a D i a l e c t . t r a n s l a t e E x c e p t i o n I f P o s s i b l e ( H i b e r n a t e J p a D i a l e c t . j a v a : 2 3 3 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . o r m . j p a . J p a T r a n s a c t i o n M a n a g e r . d o C o m m i t ( J p a T r a n s a c t i o n M a n a g e r . j a v a : 5 6 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . t r a n s a c t i o n . s u p p o r t . A b s t r a c t P l a t f o r m T r a n s a c t i o n M a n a g e r . p r o c e s s C o m m i t ( A b s t r a c t P l a t f o r m T r a n s a c t i o n M a n a g e r . j a v a : 7 4 3 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . t r a n s a c t i o n . s u p p o r t . A b s t r a c t P l a t f o r m T r a n s a c t i o n M a n a g e r . c o m m i t ( A b s t r a c t P l a t f o r m T r a n s a c t i o n M a n a g e r . j a v a : 7 1 1 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . t r a n s a c t i o n . i n t e r c e p t o r . T r a n s a c t i o n A s p e c t S u p p o r t . c o m m i t T r a n s a c t i o n A f t e r R e t u r n i n g ( T r a n s a c t i o n A s p e c t S u p p o r t . j a v a : 6 5 4 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . t r a n s a c t i o n . i n t e r c e p t o r . T r a n s a c t i o n A s p e c t S u p p o r t . i n v o k e W i t h i n T r a n s a c t i o n ( T r a n s a c t i o n A s p e c t S u p p o r t . j a v a : 4 0 7 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . t r a n s a c t i o n . i n t e r c e p t o r . T r a n s a c t i o n I n t e r c e p t o r . i n v o k e ( T r a n s a c t i o n I n t e r c e p t o r . j a v a : 1 1 9 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 8 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . C g l i b A o p P r o x y $ C g l i b M e t h o d I n v o c a t i o n . p r o c e e d ( C g l i b A o p P r o x y . j a v a : 7 5 3 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . C g l i b A o p P r o x y $ D y n a m i c A d v i s e d I n t e r c e p t o r . i n t e r c e p t ( C g l i b A o p P r o x y . j a v a : 6 9 8 ) \ r \ n \ t a t c o m . c l o u d . a t l a s . s e r v i c e . i m p l . P e r m i s s i o n S e r v i c e I m p l $ $ E n h a n c e r B y S p r i n g C G L I B $ $ 1 7 1 7 4 a 5 e . d e l e t e ( & l t ; g e n e r a t e d & g t ; ) \ r \ n \ t a t c o m . c l o u d . a t l a s . b a s e . c o n t r o l l e r . A b s t r a c t E n t i t y C o n t r o l l e r . d e l e t e ( A b s t r a c t E n t i t y C o n t r o l l e r . j a v a : 2 3 ) \ r \ n \ t a t c o m . c l o u d . a t l a s . b a s e . c o n t r o l l e r . A b s t r a c t E n t i t y C o n t r o l l e r $ $ F a s t C l a s s B y S p r i n g C G L I B $ $ 5 e 4 a 6 a d f . i n v o k e ( & l t ; g e n e r a t e d & g t ; ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . c g l i b . p r o x y . M e t h o d P r o x y . i n v o k e ( M e t h o d P r o x y . j a v a : 2 1 8 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . C g l i b A o p P r o x y $ C g l i b M e t h o d I n v o c a t i o n . i n v o k e J o i n p o i n t ( C g l i b A o p P r o x y . j a v a : 7 8 3 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 6 3 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . C g l i b A o p P r o x y $ C g l i b M e t h o d I n v o c a t i o n . p r o c e e d ( C g l i b A o p P r o x y . j a v a : 7 5 3 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . a s p e c t j . A s p e c t J A f t e r T h r o w i n g A d v i c e . i n v o k e ( A s p e c t J A f t e r T h r o w i n g A d v i c e . j a v a : 6 4 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 7 5 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . C g l i b A o p P r o x y $ C g l i b M e t h o d I n v o c a t i o n . p r o c e e d ( C g l i b A o p P r o x y . j a v a : 7 5 3 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . a s p e c t j . M e t h o d I n v o c a t i o n P r o c e e d i n g J o i n P o i n t . p r o c e e d ( M e t h o d I n v o c a t i o n P r o c e e d i n g J o i n P o i n t . j a v a : 8 9 ) \ r \ n \ t a t c o m . c l o u d . a t l a s . c o n f i g . l o g . L o g g i n g A s p e c t . l o g A r o u n d I n t e r n a l ( L o g g i n g A s p e c t . j a v a : 5 6 ) \ r \ n \ t a t c o m . c l o u d . a t l a s . c o n f i g . l o g . L o g g i n g A s p e c t . l o g A r o u n d F o r L o g C o n s o l e ( L o g g i n g A s p e c t . j a v a : 3 4 ) \ r \ n \ t a t j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . N a t i v e M e t h o d A c c e s s o r I m p l . i n v o k e 0 ( N a t i v e M e t h o d ) \ r \ n \ t a t j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . N a t i v e M e t h o d A c c e s s o r I m p l . i n v o k e ( N a t i v e M e t h o d A c c e s s o r I m p l . j a v a : 6 2 ) \ r \ n \ t a t j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . D e l e g a t i n g M e t h o d A c c e s s o r I m p l . i n v o k e ( D e l e g a t i n g M e t h o d A c c e s s o r I m p l . j a v a : 4 3 ) \ r \ n \ t a t j a v a . b a s e / j a v a . l a n g . r e f l e c t . M e t h o d . i n v o k e ( M e t h o d . j a v a : 5 6 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . a s p e c t j . A b s t r a c t A s p e c t J A d v i c e . i n v o k e A d v i c e M e t h o d W i t h G i v e n A r g s ( A b s t r a c t A s p e c t J A d v i c e . j a v a : 6 3 4 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . a s p e c t j . A b s t r a c t A s p e c t J A d v i c e . i n v o k e A d v i c e M e t h o d ( A b s t r a c t A s p e c t J A d v i c e . j a v a : 6 2 4 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . a s p e c t j . A s p e c t J A r o u n d A d v i c e . i n v o k e ( A s p e c t J A r o u n d A d v i c e . j a v a : 7 2 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 7 5 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . C g l i b A o p P r o x y $ C g l i b M e t h o d I n v o c a t i o n . p r o c e e d ( C g l i b A o p P r o x y . j a v a : 7 5 3 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . i n t e r c e p t o r . E x p o s e I n v o c a t i o n I n t e r c e p t o r . i n v o k e ( E x p o s e I n v o c a t i o n I n t e r c e p t o r . j a v a : 9 7 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . R e f l e c t i v e M e t h o d I n v o c a t i o n . p r o c e e d ( R e f l e c t i v e M e t h o d I n v o c a t i o n . j a v a : 1 8 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . C g l i b A o p P r o x y $ C g l i b M e t h o d I n v o c a t i o n . p r o c e e d ( C g l i b A o p P r o x y . j a v a : 7 5 3 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . a o p . f r a m e w o r k . C g l i b A o p P r o x y $ D y n a m i c A d v i s e d I n t e r c e p t o r . i n t e r c e p t ( C g l i b A o p P r o x y . j a v a : 6 9 8 ) \ r \ n \ t a t c o m . c l o u d . a t l a s . c o n t r o l l e r . P e r m i s s i o n C o n t r o l l e r $ $ E n h a n c e r B y S p r i n g C G L I B $ $ 8 4 3 7 b 1 1 f . d e l e t e ( & l t ; g e n e r a t e d & g t ; ) \ r \ n \ t a t j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . N a t i v e M e t h o d A c c e s s o r I m p l . i n v o k e 0 ( N a t i v e M e t h o d ) \ r \ n \ t a t j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . N a t i v e M e t h o d A c c e s s o r I m p l . i n v o k e ( N a t i v e M e t h o d A c c e s s o r I m p l . j a v a : 6 2 ) \ r \ n \ t a t j a v a . b a s e / j d k . i n t e r n a l . r e f l e c t . D e l e g a t i n g M e t h o d A c c e s s o r I m p l . i n v o k e ( D e l e g a t i n g M e t h o d A c c e s s o r I m p l . j a v a : 4 3 ) \ r \ n \ t a t j a v a . b a s e / j a v a . l a n g . r e f l e c t . M e t h o d . i n v o k e ( M e t h o d . j a v a : 5 6 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . w e b . m e t h o d . s u p p o r t . I n v o c a b l e H a n d l e r M e t h o d . d o I n v o k e ( I n v o c a b l e H a n d l e r M e t h o d . j a v a : 2 0 5 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . w e b . m e t h o d . s u p p o r t . I n v o c a b l e H a n d l e r M e t h o d . i n v o k e F o r R e q u e s t ( I n v o c a b l e H a n d l e r M e t h o d . j a v a : 1 5 0 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . m v c . m e t h o d . a n n o t a t i o n . S e r v l e t I n v o c a b l e H a n d l e r M e t h o d . i n v o k e A n d H a n d l e ( S e r v l e t I n v o c a b l e H a n d l e r M e t h o d . j a v a : 1 1 7 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . m v c . m e t h o d . a n n o t a t i o n . R e q u e s t M a p p i n g H a n d l e r A d a p t e r . i n v o k e H a n d l e r M e t h o d ( R e q u e s t M a p p i n g H a n d l e r A d a p t e r . j a v a : 8 9 5 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . m v c . m e t h o d . a n n o t a t i o n . R e q u e s t M a p p i n g H a n d l e r A d a p t e r . h a n d l e I n t e r n a l ( R e q u e s t M a p p i n g H a n d l e r A d a p t e r . j a v a : 8 0 8 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . m v c . m e t h o d . A b s t r a c t H a n d l e r M e t h o d A d a p t e r . h a n d l e ( A b s t r a c t H a n d l e r M e t h o d A d a p t e r . j a v a : 8 7 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . D i s p a t c h e r S e r v l e t . d o D i s p a t c h ( D i s p a t c h e r S e r v l e t . j a v a : 1 0 6 7 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . D i s p a t c h e r S e r v l e t . d o S e r v i c e ( D i s p a t c h e r S e r v l e t . j a v a : 9 6 3 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . F r a m e w o r k S e r v l e t . p r o c e s s R e q u e s t ( F r a m e w o r k S e r v l e t . j a v a : 1 0 0 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . F r a m e w o r k S e r v l e t . d o D e l e t e ( F r a m e w o r k S e r v l e t . j a v a : 9 3 1 ) \ r \ n \ t a t j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t . s e r v i c e ( H t t p S e r v l e t . j a v a : 6 8 7 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . F r a m e w o r k S e r v l e t . s e r v i c e ( F r a m e w o r k S e r v l e t . j a v a : 8 8 3 ) \ r \ n \ t a t j a v a x . s e r v l e t . h t t p . H t t p S e r v l e t . s e r v i c e ( H t t p S e r v l e t . j a v a : 7 6 4 ) \ r \ n \ t a t o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 2 2 7 ) \ r \ n \ t a t o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 6 2 ) \ r \ n \ t a t o r g . a p a c h e . t o m c a t . w e b s o c k e t . s e r v e r . W s F i l t e r . d o F i l t e r ( W s F i l t e r . j a v a : 5 3 ) \ r \ n \ t a t o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . i n t e r n a l D o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 8 9 ) \ r \ n \ t a t o r g . a p a c h e . c a t a l i n a . c o r e . A p p l i c a t i o n F i l t e r C h a i n . d o F i l t e r ( A p p l i c a t i o n F i l t e r C h a i n . j a v a : 1 6 2 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 2 7 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . i n t e r c e p t . F i l t e r S e c u r i t y I n t e r c e p t o r . i n v o k e ( F i l t e r S e c u r i t y I n t e r c e p t o r . j a v a : 1 1 5 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . i n t e r c e p t . F i l t e r S e c u r i t y I n t e r c e p t o r . d o F i l t e r ( F i l t e r S e c u r i t y I n t e r c e p t o r . j a v a : 8 1 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 3 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . E x c e p t i o n T r a n s l a t i o n F i l t e r . d o F i l t e r ( E x c e p t i o n T r a n s l a t i o n F i l t e r . j a v a : 1 2 2 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a c c e s s . E x c e p t i o n T r a n s l a t i o n F i l t e r . d o F i l t e r ( E x c e p t i o n T r a n s l a t i o n F i l t e r . j a v a : 1 1 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 3 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s e s s i o n . S e s s i o n M a n a g e m e n t F i l t e r . d o F i l t e r ( S e s s i o n M a n a g e m e n t F i l t e r . j a v a : 1 2 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s e s s i o n . S e s s i o n M a n a g e m e n t F i l t e r . d o F i l t e r ( S e s s i o n M a n a g e m e n t F i l t e r . j a v a : 8 1 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 3 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . a u t h e n t i c a t i o n . A n o n y m o u s A u t h e n t i c a t i o n F i l t e r . d o F i l t e r ( A n o n y m o u s A u t h e n t i c a t i o n F i l t e r . j a v a : 1 0 9 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 3 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s e r v l e t a p i . S e c u r i t y C o n t e x t H o l d e r A w a r e R e q u e s t F i l t e r . d o F i l t e r ( S e c u r i t y C o n t e x t H o l d e r A w a r e R e q u e s t F i l t e r . j a v a : 1 4 9 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 3 6 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . s a v e d r e q u e s t . R e q u e s t C a c h e A w a r e F i l t e r . d o F i l t e r ( R e q u e s t C a c h e A w a r e F i l t e r . j a v a : 6 3 ) \ r \ n \ t a t o r g . s p r i n g f r a m e w o r k . s e c u r i t y . w e b . F i l t e r C h a i n P r o x y $ V i r t u a l F i l t e r C h a i n . d o F i l t e r ( F i l t e r C h a i n P r o x y . j a v a : 3 3 6 ) \ r \ n \ t a t c o m . c l o u d . a t l a s .security.CustomAuthenticationFilter.doFilterInternal(CustomAuthenticationFilter.java:61)\r\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n\tat org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n\tat org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n\tat org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n\tat org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n\tat org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n\tat org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n\tat org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n\tat org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n\tat org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n\tat org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n\tat org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n\tat org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n\tat org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n\tat org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n\tat org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n\tat org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\r\n\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\r\n\tat org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\r\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\r\n\tat org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\r\n\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\r\n\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\r\n\tat org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)\r\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\r\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)\r\n\tat org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\r\n\tat org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n\tat org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\r\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)\r\n\tat org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n\tat org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\r\n\tat org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\r\n\tat org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n\tat java.base/java.lang.Thread.run(Thread.java:834)\r\nCaused by: org.hibernate.exception.DataException: could not delete: [com.cloud.atlas.domain.Permission#32]\r\n\tat org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:115)\r\n\tat org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:37)\r\n\tat org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)\r\n\tat org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3727)\r\n\tat org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3958)\r\n\tat org.hibernate.action.internal.EntityDeleteAction.execute(EntityDeleteAction.java:123)\r\n\tat org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:604)\r\n\tat org.hibernate.engine.spi.ActionQueue.lambda$executeActions$1(ActionQueue.java:478)\r\n\tat java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:684)\r\n\tat org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:475)\r\n\tat org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:344)\r\n\tat org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:40)\r\n\tat org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107)\r\n\tat org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1407)\r\n\tat org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:489)\r\n\tat org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3290)\r\n\tat org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2425)\r\n\tat org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:449)\r\n\tat org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:183)\r\n\tat org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300(JdbcResourceLocalTransactionCoordinatorImpl.java:40)\r\n\tat org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:281)\r\n\tat org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:101)\r\n\tat org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:562)\r\n\t... 122 more\r\nCaused by: org.postgresql.util.PSQLException: The column index is out of range: 2, number of columns: 1.\r\n\tat org.postgresql.core.v3.SimpleParameterList.bind(SimpleParameterList.java:69)\r\n\tat org.postgresql.core.v3.SimpleParameterList.setBinaryParameter(SimpleParameterList.java:136)\r\n\tat org.postgresql.jdbc.PgPreparedStatement.bindBytes(PgPreparedStatement.java:1047)\r\n\tat org.postgresql.jdbc.PgPreparedStatement.setLong(PgPreparedStatement.java:307)\r\n\tat com.zaxxer.hikari.pool.HikariProxyPreparedStatement.setLong(HikariProxyPreparedStatement.java)\r\n\tat org.hibernate.type.descriptor.sql.BigIntTypeDescriptor$1.doBind(BigIntTypeDescriptor.java:46)\r\n\tat org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:73)\r\n\tat org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:276)\r\n\tat org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:271)\r\n\tat org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3681)\r\n\t... 141 more\r\n"
}
Все конечные точки работали, удалялись только неработающие конечные точки. Я работаю над Base Entity для удобства чтения кода:
package com.cloud.atlas.base.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;
@SuperBuilder
@EntityListeners({ AuditingEntityListener.class })
@Data
@EqualsAndHashCode
@NoArgsConstructor
@ToString
@MappedSuperclass
public abstract class BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", length = 50)
protected Long id;
@CreatedDate
@Column(name = "created_at")
protected LocalDateTime createdAt;
@LastModifiedDate
@Column(name = "updated_at")
protected LocalDateTime updatedAt;
@Column(name = "deleted_at")
protected LocalDateTime deletedAt;
@Column(name = "is_active", nullable = false)
private boolean isActive = true;
@Column(name = "is_deleted", nullable = false)
private boolean isDeleted = false;
@CreatedBy
@Column(name = "created_by")
private String createdBy;
@LastModifiedBy
@Column(name = "updated_by")
private String updatedBy;
@Version
@Column(name = "version")
private Long version;
@PrePersist
public void onCreate() {
this.createdAt = LocalDateTime.now();
this.updatedAt = LocalDateTime.now();
}
@PreUpdate
public void onUpdate() {
this.updatedAt = LocalDateTime.now();
}
public abstract void update(T entity);
}
И модель разрешений:
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Entity
@Table(name = "permission")
@SQLDelete(sql = "UPDATE permission SET is_deleted = true WHERE id=?")
@Where(clause = "is_deleted=false")
public class Permission extends BaseEntity {
@Column(nullable = false)
private String alias;
@Column
private String author;
@Column
private String title;
@Column
private String description;
@Column
private Integer status;
@Override
public void update(T entity) {
Permission permission = (Permission) entity;
this.alias = permission.alias;
this.title = permission.title;
this.description = permission.description;
this.status = permission.status;
this.author = permission.author;
}
}
Терминал сообщает:
nput: [100]
output: could not delete: [com.cloud.atlas.domain.Permission#100]; SQL [UPDATE permission SET is_deleted = true WHERE id=?]; nested exception is org.hibernate.exception.DataException: could not delete: [com.cloud.atlas.domain.Permission#100]
2024-10-03 10:33:16.710 ERROR 22188 --- [nio-9060-exec-3] GLOBAL_EXCEPTION_HANDLER : An error occurred
org.springframework.dao.DataIntegrityViolationException: could not delete: [com.cloud.atlas.domain.Permission#100]; SQL [UPDATE permission SET is_deleted = true WHERE id=?]; nested exception is org.hibernate.exception.DataException: could not delete: [com.cloud.atlas.domain.Permission#100]
Когда я исследовал эту проблему, в решении говорилось, что если вы используете команду, допускающую значение NULL, вам нужно использовать такую длину: @Column(nullable = false, length = 4096), и это так. не решит мою проблему.
Неправильно, но если я не смогу решить, я добавлю конечную точку мягкого удаления с аннотацией PUT и просто обновлю часть is_deleted до true.
Спасибо за вашу помощь!
Изменить: когда я удаляю эти строки, проблема решается, но удаление больше не является мягким:
@SQLDelete(sql = "UPDATE permission SET is_deleted = true WHERE id=?")
@Where(clause = "is_deleted=false")
Подробнее здесь: https://stackoverflow.com/questions/790 ... nexception
Мобильная версия