Java Spring ORM JNDI Tomcat-没有实际事务可用的EntityManager

Java Spring ORM JNDI Tomcat-没有实际事务可用的EntityManager,java,tomcat,jpa,spring-orm,Java,Tomcat,Jpa,Spring Orm,我可以找到但无法保存我的实体 Tomcat上下文: <Resource name="jdbc/spring" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="30" maxWaitMillis="10000" username="spring" password="spring" driverClassName="com.mysql.jdbc.D

我可以找到但无法保存我的实体

Tomcat上下文:

      <Resource name="jdbc/spring" auth="Container" type="javax.sql.DataSource"
           maxTotal="100" maxIdle="30" maxWaitMillis="10000"
           username="spring" password="spring" driverClassName="com.mysql.jdbc.Driver"
           url="jdbc:mysql://localhost:3306/spitter"/>
和道:

@Repository
@Transactional
public class UserRepositoryImpl implements UserRepository {

    @PersistenceContext
    private EntityManager entityManager;

    @Override
    public User findUser(Long id) {
        return entityManager.find(User.class, id);
    }

    @Override
    public User findUserByUsername(String username) {
        return (User)entityManager.createQuery("Select u from User u where username= :username ")
                .setParameter("username", username)
                .getSingleResult();
    }

    @Override
    public void addUser(User user) {
        entityManager.persist(user);
    }
}
服务:

@Service
public class UserService implements UserDetailsService {

    @Autowired
    private UserRepository userRepository;

    @Override
    public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
        User user = new User();
        user.setUsername("admin");
        user.setPassword("admin");
        Role role = new Role();
        role.setRole("ADMIN");
        Role role2 = new Role();
        role2.setRole("USER");
        HashSet set = new HashSet();
        set.add(role);
        set.add(role2);
        user.setRoles(set);
        userRepository.addUser(user);
        return userRepository.findUserByUsername(s);
    }
}
当我到达userRepository.addUser(user)时,没有实体保存到我的数据库中,我也没有实体管理器,实际事务可用异常


我哪里错了?

好的,我没有把@EnableTransactionManagement()放在我的配置上。 封闭的

@Service
public class UserService implements UserDetailsService {

    @Autowired
    private UserRepository userRepository;

    @Override
    public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
        User user = new User();
        user.setUsername("admin");
        user.setPassword("admin");
        Role role = new Role();
        role.setRole("ADMIN");
        Role role2 = new Role();
        role2.setRole("USER");
        HashSet set = new HashSet();
        set.add(role);
        set.add(role2);
        user.setRoles(set);
        userRepository.addUser(user);
        return userRepository.findUserByUsername(s);
    }
}