gpt4 book ai didi

ejb-3.0 - 如何在 EJB3 中的 Entity 类中访问 EntityManager

转载 作者:行者123 更新时间:2023-12-04 05:54:17 24 4
gpt4 key购买 nike

我需要执行一个数据库查询,以便在多对多关联表中设置额外的列“按列排序”。所以我需要从 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 传递给它?
或者我如何在实体类中执行 native 查询?

最佳答案

注入(inject) EntityManager不推荐在实体 bean 中。在我看来,作为 POJO 的实体 bean 是用于层或网络之间的数据传输。

最好预先填充实体,数据操作优先于持久性。但是可以在实体回调方法中对属性或数据格式进行一些验证。

在这里,您可以通过应用 @EntityListeners 来尝试使用实体监听器。实体上的注释,在实体生命周期回调方法上得到通知。

关于ejb-3.0 - 如何在 EJB3 中的 Entity 类中访问 EntityManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9707888/

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