Advertisement
keenan-v1

Untitled

Apr 23rd, 2023
1,120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.21 KB | Source Code | 0 0
  1. @Component
  2. public class EntityGenerator {
  3.     @PersistenceUnit
  4.     private final EntityManagerFactory entityManagerFactory;
  5.  
  6.     public EntityGenerator(@Autowired EntityManagerFactory entityManagerFactory) {
  7.         this.entityManagerFactory = entityManagerFactory;
  8.     }
  9.  
  10.     public <T extends Persistable<Long>> Collection<T> generate(Class<T> entityClass, int quantity, String actorIdentity) {
  11.         Authentication authentication = MockedAuthentication.create(actorIdentity, "all");
  12.         SecurityContextHolder.getContext().setAuthentication(authentication);
  13.         EntityManager manager = entityManagerFactory.createEntityManager();
  14.         manager.getTransaction().begin();
  15.         ArrayList<T> entities = new ArrayList<>();
  16.         for (int i = 0; i < quantity; i++) {
  17.             try {
  18.                 T entity = entityClass.getDeclaredConstructor().newInstance();
  19.                 manager.persist(entity);
  20.                 entities.add(entity);
  21.             } catch (Exception e) {
  22.                 throw new RuntimeException(e);
  23.             }
  24.         }
  25.         manager.getTransaction().commit();
  26.         manager.close();
  27.         SecurityContextHolder.clearContext();
  28.         return entities;
  29.     }
  30. }
  31.  
Tags: Java spring
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement