EM不会持久存在db

时间:2018-03-02 12:03:02

标签: java spring spring-boot

我使用spring-boot并尝试将新对象持久保存到db但没有任何反应。我为另一个实体获得了相同的方法并且它的工作原理。有什么建议?

实体:

@Entity
@Table(name = "subject")
public class Subject implements Serializable{

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

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

@OneToMany(mappedBy = "subject")
private Set<Question> questions =new HashSet<>();

DAO:

import org.springframework.transaction.annotation.Transactional;
@Autowired
private EntityManager entityManager;
@Repository
@Transactional
public class QuestionDaoImpl implements QuestionDao {
public void createNewSubjectByName(String name) {
    Subject subject = new Subject();
    subject.setName(name);
    entityManager.persist(subject);
}

1 个答案:

答案 0 :(得分:-1)

@Transactional
public Subject createNewSubjectByName(String name) {
    EntityManager entityManager = entityManagerFactory.createEntityManager();
    Subject subject = new Subject();
    subject.setName(name);
    entityManager.getTransaction().begin();
    entityManager.persist(subject);
    entityManager.flush();
    entityManager.getTransaction().commit();
    entityManager.close();
    return subject;
}