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)
详细解释