我的目标是从json文件创建许多java对象,然后将那些对象放入数据库中。我不确定应如何将许多对象放入persist方法中,因为persist方法仅接受实体。 我是java的新手,我实际上不知道这是否有意义以及是否可以实现。 Json文件:
[
{
"id": 1,
"name": "Drama"
},
{
"id": 2,
"name": "Horror"
},
{
"id": 3,
"name": "Mystery"
}
]
Genre.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文件持久保存到db的地方。
答案 0 :(得分:0)
如果您使用的是“香草” EntityManager
,则必须遍历集合:
listGenre.forEach(entityManager::persist);
使用spring时,可以使用saveAll
方法:
genreRepository.saveAll(listGenre);