我的目标是从 json 文件创建许多 java 对象,然后将这些对象放入我的数据库中。我不确定如何将许多对象放入 persist 方法中,因为 persist 方法只接受实体。 我是java新手,实际上我不知道这是否有意义以及是否可以实现。 Json 文件:
[
{
"id": 1,
"name": "Drama"
},
{
"id": 2,
"name": "Horror"
},
{
"id": 3,
"name": "Mystery"
}
]
流派.class
@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
}
主要
class Main {
public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
EntityManager entityManager = null;
EntityManagerFactory entityManagerFactory = null;
try {
entityManagerFactory = Persistence.createEntityManagerFactory("hibernate-dynamic");
entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
List<Genre> listGenre = objectMapper.readValue(new File("D:\\genre.json"), new TypeReference<List<Genre>>(){});
entityManager.persist(???);
entityManager.getTransaction().commit();
entityManager.close();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
} finally {
entityManagerFactory.close();
}
}
}
我不知道“???”中该填什么将所有这 3 个对象从 json 文件持久保存到数据库的位置。
最佳答案
如果您使用“vanilla”EntityManager
,则必须循环访问集合:
listGenre.forEach(entityManager::persist);
使用spring时,可以使用saveAll
方法:
genreRepository.saveAll(listGenre);
关于java - 如何将多个对象持久化到数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59288443/