当前位置: 首页 > 知识库问答 >
问题:

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

戚学文
2023-03-14

在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;
}
JPAQuery.insert(QAttachment.attachment).into(QContract.attachment).where(QContract.contract.id.eq(<contractId>));

这样的事情可行吗?

共有1个答案

白宏放
2023-03-14

这不在Querydsl的范围内,而且INSERT子句也不在JPA API的范围内,所以您需要通过JPA EntityManager API进行插入。

 类似资料:
  • 主要内容:JPA实体插入示例在JPA中,我们可以通过实体轻松地将数据插入到数据库中。 提供方法来插入数据记录。 JPA实体插入示例 在这里,我们将演示如何使用实现插入学生的记录。 创建一个JPA项目,其项目目录结构如下所示 - 这个例子包含以下步骤 - 第1步: 在包下创建一个名为StudentEntity.java的实体类,这个类包含以下几个属性:, 和 。 文件:StudentEntity.java 的代码如下 - 第2

  • 我正在尝试使用Querydsl(4.1.4)查询JPA,如本文http://www.Querydsl.com/static/Querydsl/latest/reference/html/ch02.html#jpa_integration所述。我使用Hibernate(5.2.12.final)作为JPA后端。我使用和处理器从JPA注释类生成Querydsl查询类型。 这将打印: 原始JpaUpda

  • 问题内容: 我想要的是: 但是,您知道@Embeddable没有这样的属性。 有正确的方法吗?我不想要解决方法。 问题答案: 可嵌入组件(或复合元素,无论您想称呼它们)通常包含多个属性,因此被映射到多个列。因此,整个组件为null可以用不同的方式处理。J2EE规范没有规定一种方法。 如果所有组件的属性均为NULL,则Hibernate会将其视为NULL(反之亦然)。因此,您可以声明一个(任意)属性

  • 问题内容: 我可以在Java中使用Scala List,例如: 它似乎没有编译。找不到List $ .apply方法。 当我将其更改为 其中Dir是我的scala类,而ls()返回一个scala列表,编译器抱怨 “内部编译器错误:java.lang.ClassCastException:org.eclipse.jdt.internal.compiler.lookup.BaseTypeBinding

  • 我对Spring Data JPA不太感兴趣,在Spring Boot项目中我遇到了以下问题。 对于如何正确处理这种情况,我有以下架构上的疑问: 我有一个由这样的接口实现的存储库,我在其中定义了我的“查询方法”: 如您所见,我正在扩展Crudepository接口,并指定了一个名为**Country*的模型类,映射数据库中的特定表。 我添加了第二个方法,用于映射不同的数据库表的另一个实体类(Blo

  • 我的父母子女单向关系如下: 我创建一个父实例,给它分配一个子列表,并尝试持久化它,它工作得很好。 当我试图通过子实体单独保存时,我看到insert查询试图将null插入子表中的列PARENT_ID,并导致 异常,同时保存独立于父表的子实体。我试图插入的子实体与已经存在的父实体相关。 在将关系定义为单向关系后,是否无法直接保存子实体?