Java 如何将多个对象持久化到数据库?
我的目标是从json文件创建许多java对象,然后将这些对象放入我的数据库中。我不确定应该如何将许多对象放入persist方法中,因为persist方法只接受实体。 我是java新手,实际上我不知道这是否有意义,是否可以实现。 Json文件:Java 如何将多个对象持久化到数据库?,java,hibernate,jackson,Java,Hibernate,Jackson,我的目标是从json文件创建许多java对象,然后将这些对象放入我的数据库中。我不确定应该如何将许多对象放入persist方法中,因为persist方法只接受实体。 我是java新手,实际上我不知道这是否有意义,是否可以实现。 Json文件: [ { "id": 1, "name": "Drama" }, { "id": 2, "name": "Horror" }, { "id": 3, "name": "Mystery"
[
{
"id": 1,
"name": "Drama"
},
{
"id": 2,
"name": "Horror"
},
{
"id": 3,
"name": "Mystery"
}
]
类别
@Entity
@Table(name = "GENRE")
public class Genre {
@Id @GeneratedValue
@Column(name = "id")
private int id;
@Column(name = "name", nullable = false)
private String name;
public Genre() {}
//setters getters
}
主要
主类{
公共静态void main(字符串[]args){
ObjectMapper ObjectMapper=新的ObjectMapper();
EntityManager EntityManager=null;
EntityManagerFactory EntityManagerFactory=null;
试一试{
entityManagerFactory=Persistence.createEntityManagerFactory(“hibernate动态”);
entityManager=entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
List listgree=objectMapper.readValue(新文件(“D:\\genre.json”),新类型引用(){});
实体管理器持续(??);
entityManager.getTransaction().commit();
entityManager.close();
}捕获(可丢弃的ex){
System.err.println(“初始会话工厂创建失败。”+ex);
}最后{
entityManagerFactory.close();
}
}
}
我不知道应该在“?”位置放置什么,以便将所有这3个对象从json文件持久化到db。如果您使用的是“香草”EntityManager,则必须在集合中循环:
listGenre.forEach(entityManager::persist);
使用spring时,可以使用saveAll
方法:
genreRepository.saveAll(listGenre);
如果您使用的是“vanilla”EntityManager
,则必须在集合中循环:
listGenre.forEach(entityManager::persist);
使用spring时,可以使用saveAll
方法:
genreRepository.saveAll(listGenre);
遍历所有对象并分别保存?遍历所有对象并分别保存?非常感谢。这对我帮助很大,非常感谢。这对我帮助很大。