我需要执行一个数据库查询,以便在多对多关联表中设置额外的列“按列排序”。所以我需要从 Entity 类内部访问 db 序列,然后选择序列的 nextval 并将其分配给@prepersist 生命周期回调方法中的 order_by 列。
@Entity
public class ProductWishlist implements Serializable
{
....
@Column(name="ORDER_BIT")
private long orderBit;
// getter setter
// .......
@Prepersist
public void setOrderBit(EntityManager entityManager)
{
Query q=entityManager.createNativeQuery("select nextval('SHP_PRODUCTS_PICS_ORDER_SEQ')");
Long order=(Long)q.getResultList().get(0);
this.setOrderBit(order);
}
}
如何从 setOrderBit () 中访问 entitymanger?我如何将 Entitymanager 传递给它?或者我如何在实体类中执行本机查询?