@PostConstruct и EntityManager запрос

Всем привет. в проекте Spring MVC Security Hibernate (без boot) пытаюсь создать роли и админа по умолчанию через @PostConstruct. Может кто мне объяснить в каком классе инициализировать PostConstruct метод и что в нем писать, чтобы добавить в бд роли и админа?

Это максимум что я нашел в интернете, и конечно метод не работает:

@PostConstruct
private void init(){
    TransactionTemplate tmpl = new TransactionTemplate(txManager);
    tmpl.execute(new TransactionCallbackWithoutResult() {
        @Override
        protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) {
            Set<Role> roles = new HashSet<>();
            roles.add(new Role(1,"ROLE_ADMIN"));
            User admin = new User(1,"ADMIN",1,1,"100");
            admin.setRoles(roles);
            em.persist(admin);
        }
    });
}

Юзер класс:

@Entity
@Table(name = "user")
public class User implements UserDetails {

@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@Column(name = "name")
private String name;

@Column(name = "age")
private int age;

@Column(name = "weight")
private int weight;

@Column(name = "password")
private String password;

@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "user_role",
        joinColumns = @JoinColumn(name = "user_id"),
        inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set<Role> roles;

public User(){}

public User(int id, String name, int age, int weight, String password) {
    this.id=id;
    this.name = name;
    this.age = age;
    this.weight = weight;
    this.password = password;
}

Класс Роль:

@Entity
@Table(name = "role")
public class Role implements GrantedAuthority {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

private String name;

@ManyToMany(mappedBy = "roles")
private Set<User> users;

public Role() {
}

public Role(int id) {
    this.id = id;
}

public Role(int id, String name) {
    this.id = id;
    this.name = name;
}

Ответы (0 шт):