1
我想从嵌入式地图中删除条目。如果对象CategoryTag
被删除时,我想在一个拦截器,它从地图中删除的条目执行HQL查询:休眠:HQL从嵌入式地图中删除
“产品”型号:
@NotNull
@ElementCollection
@CollectionTable(name = "producttag", [email protected](name="id"))
protected Map<CategoryTag, String> tags = new HashMap<CategoryTag, String>();
我有点空白,我怎么可以编写HQL查询。它从问题开始,我不知道如何在删除查询中引用地图。 delete Product.tags t where t.key = :tag
因Product.tags is not mapped
异常而失败。
有人可以帮助我吗?
'CategoryTag'没有对'Product'的引用,所以它基本上不知道哪些产品正在使用它。因此,按照您的建议,我必须选择包含该标签的所有产品,然后按照您的建议循环删除它。但是,我想知道是否有一种方法可以用一个简单的语句来实现。我可以用一个本地查询来做到这一点:'从producttag删除tag_KEY =:tag',但是这会导致缓存问题,所以我想知道是否有办法在HQL中完成它。 – Flo 2013-02-16 12:29:15
我相信你仍然需要按照我告诉你的方式来做,这样可以帮助你跳过缓存问题。 – 2013-02-16 17:45:24