有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java EM不会持久化到数据库中

我正在使用SpringBoot并尝试将新对象持久化到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) 个答案

  1. # 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;
    }