gpt4 book ai didi

hibernate - 我可以使用 QueryDSL 直接插入 JPA 实体吗?

转载 作者:行者123 更新时间:2023-12-03 08:21:03 26 4
gpt4 key购买 nike

QueryDSL 有没有办法在不直接使用 JPA 提供程序的情况下插入 JPA 实体?

我的用例问题如下。我正在将 Hibernate 与两个实体之间的连接表映射一起使用。

前任:

public class Contract implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;

@Version
@Column(name = "version")
private Integer version;

private String number;
private String volume;

@ManyToMany
@JoinTable(joinColumns = @JoinColumn(name = "contract_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "attachment_id", referencedColumnName = "id"))
private List<Attachment> attachments;
}

我的问题是,如果我尝试同时在 2 个单独的线程中添加附件,我将收到乐观锁异常(如预期)。因此,我想尝试通过 SQL 插入命令直接添加附件。

无论如何插入 Attachment实体通过 QueryDSL 作为对象?我找不到任何涵盖此用例的引用文档。只有更新查询,需要设置各个字段。

伪代码:
JPAQuery.insert(QAttachment.attachment).into(QContract.attachment).where(QContract.contract.id.eq(<contractId>));

这样的事情可行吗?

最佳答案

这不在 Querydsl 中,而且 INSERT 子句也不在 JPA API 中,因此您需要通过 JPA EntityManager API 进行插入。

关于hibernate - 我可以使用 QueryDSL 直接插入 JPA 实体吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24291420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com