Hibernate注释@Where with parameter

时间:2012-12-17 19:06:54

标签: hibernate annotations

我目前有这个类Product,用这种方式注释(我使用软删除):

@SQLDelete(sql = "UPDATE products SET active = '0' WHERE id_product = ? and last_modification_date = ?")
@Where(clause = "active = '1'" )
@Entity
@Table(name = "products ")
public class Product {
  .....
}

我想要使用@Where子句过滤bean(产品),以便一个用户只能看到自己公司的产品。公司ID在会话中,并且由于@SQLDelete接收参数,我想做类似的事情:

@Where(clause = "active = '1' and id_company = ?" )

这样我就可以根据每个用户过滤所有表来获取结果,而无需编辑系统中的所有查询。有没有办法实现这个目标?

任何帮助都会得到很好的帮助。
另外,如果需要更多信息来了解问题,请告诉我。

1 个答案:

答案 0 :(得分:0)

在休眠方式中有很多方法可以做到这一点,

String hql = "from Stock s where s.stockCode = :stockCode";
List result = session.createQuery(hql)
.setString("stockCode", "7277")
.list();

您可以从此链接http://www.mkyong.com/hibernate/hibernate-parameter-binding-examples/

获取更多信息