Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate-仅使用id设置多个一列的值,而不使用对象的实例_Java_Hibernate - Fatal编程技术网

Java Hibernate-仅使用id设置多个一列的值,而不使用对象的实例

Java Hibernate-仅使用id设置多个一列的值,而不使用对象的实例,java,hibernate,Java,Hibernate,我有那些桌子: Name: product Rows: id Name: order_product Rows: id, product_id 在java中,映射如下: @Entity @Table(name = "product") public class Product{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private Intege

我有那些桌子:

Name: product
Rows: id

Name: order_product
Rows: id, product_id
在java中,映射如下:

@Entity
@Table(name = "product")
public class Product{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Integer id;

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "product")
    private Set<OrderProduct> orderProductList = new LinkedHashSet<>();

    //...

}

@Entity
@Table(name = "order_product")
public class OrderProduct{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Integer id;

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "product_id")
    private Product product;

    //...

}
我想要的是删除我需要从db中获取产品的部分

我想直接使用id设置
newOrderProduct
setProduct

newOrderProduct.setProduct(productId);
我知道我可以通过消除
manytone
并将变量乘积声明为
Integer
来实现这一点。但我不想失去
ManyToOne
的好处

有一种方法可以仅通过id设置产品,而不使用
产品的实例

这可以通过以下方法完成:

公共布尔createOrderProduct(int-productId){ FluentQuery query=FluentJPA.SQL((OrderProduct op)->{ 将()插入(op); 值(行(productId)); }); 返回query.createQuery(em.executeUpdate()>0; }
生成的SQL:

INSERT   INTO order_product t0 
VALUES (?1)
详细说明。

这可以通过以下方式完成:

公共布尔createOrderProduct(int-productId){ FluentQuery query=FluentJPA.SQL((OrderProduct op)->{ 将()插入(op); 值(行(productId)); }); 返回query.createQuery(em.executeUpdate()>0; }
生成的SQL:

INSERT   INTO order_product t0 
VALUES (?1)
详细解释