相关疑难解决方法(0)

JPA/Hibernate批量(批量)插入

这是我在阅读了几个关于jpa批量插入的主题后创建的简单示例,我有2个持久对象User和Site.一个用户可以有很多站点,所以我们在这里有一对多的关系.假设我想创建用户并创建/链接几个站点到用户帐户.考虑到我愿意为Site对象使用批量插入,这是代码的样子.

User user = new User("John Doe");

user.getSites().add(new Site("google.com", user));
user.getSites().add(new Site("yahoo.com", user));

EntityTransaction tx = entityManager.getTransaction();
tx.begin();
entityManager.persist(user);
tx.commit();
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码(我使用hibernate作为jpa实现提供程序)时,我看到以下sql输出:

Hibernate: insert into User (id, name) values (null, ?)
Hibernate: call identity()
Hibernate: insert into Site (id, url, user_id) values (null, ?, ?)
Hibernate: call identity()
Hibernate: insert into Site (id, url, user_id) values (null, ?, ?)
Hibernate: call identity()
Run Code Online (Sandbox Code Playgroud)

所以,我的意思是"真正的"批量插入不起作用或我感到困惑?

以下是此示例项目的源代码,这是maven项目,因此您只需下载并运行mvn install来检查输出.

更新:

在Ken Liu亲切地建议之后,我已禁用Site对象id自动生成:

    User user = new User("John Doe");
    user.getSites().add(new Site(1, "google.com", user));
    user.getSites().add(new …
Run Code Online (Sandbox Code Playgroud)

java persistence hibernate jpa openjpa

25
推荐指数
3
解决办法
5万
查看次数

如何在hibernate中通过ArrayList保存多个对象?

我有一个学生实体.我的想法是在ArrayList中收集多个学生对象,并将该列表中的所有对象保存到数据库中.什么时候使用@ElementCollection注释?它适用于这种情况吗?

学生:

package basic;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Student {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String name;

    public Student() {

    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + …
Run Code Online (Sandbox Code Playgroud)

java hibernate arraylist

11
推荐指数
2
解决办法
4万
查看次数

标签 统计

hibernate ×2

java ×2

arraylist ×1

jpa ×1

openjpa ×1

persistence ×1