0
我使用Hibernate和具有以下設置:我是否需要在Hibernate中顯式啓動和結束事務?
@Entity
public class Owner {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name", nullable = false)
private String name;
@OneToMany(cascade = CascadeType.ALL)
private List<Dog> dogs = new ArrayList<>();
}
@Entity
public class Dog {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name", nullable = false)
private String name;
}
public class PersonDao {
public Long createPetRelation(String ownerName, String dogName) {
EntityManager entityManager = entityManagerFactory.createEntityManager();
Dog dog = new Dog();
dog.setName("Fido");
Person person = new Person();
person.setName("Joe");
person.addDog(dog);
entityManager.persist(person);
return person.getId();
}
}
我不知道我是否需要包裝的持久性代碼在一個事務中,還是休眠可以根據@OneToMany
關係弄清楚,如果保存狗實體失敗,那麼整個事情應該回滾?從文檔中不清楚。
我沒有使用容器或框架,只是在具有JPA配置的獨立Java項目中直接使用Hibernate。