在hibernate中,如果要映射多对多的映射比如有两个实体:user, privilege,数据库中通过link表来表示两者的关联关系,单在link中有一个flag标识是否有效,这样怎样在hibernate中解决?拆成两个一对多?还有没有其他方法?
[b]问题补充:[/b]
我的意思是link中除了那三个字段之外,我还有一个字段表示这个关系是否生效,也就是说,这个字段是重点,在业务中要靠这个字段来确定映射关系是否有效。谢谢
[b]问题补充:[/b]
formular我试过
可是如果我的需求是动态的,怎么办?
其实这才是我的真正问题。
我的意识是flag有很多种值,我需要根据业务选择不同的值,用where只能产生死的值。
[b]问题补充:[/b]
比如说:User和Role之间的多对多关系,中间表USER_ROLE中不仅有user_id和role_id,还有两个子段,标识有效期。有一个是begin_date,一个是end_date。具体到业务上:一个是查询某个user现在所拥有的role,另外一个是:曾经拥有的role。
[b]问题补充:[/b]
感谢回答。
如果这样的话,可以改成的写法,生成一个中间UserRole类。
或者可以试试
[code="java"]
class="Item"
column="ITEM_ID"
not-null="true"/>
[/code]
从 229页转载,如有需要,通知我一声 :)
link中有三个字段:id,userid,privilegeid
User.hbm:
[code="java"]
...
[/code]
Privilegeid配置也一样
你可以试一下:
[code="java"]
...
[/code]
或者formula这个标签。
希望对你有帮助!
[quote]我的意识是flag有很多种值,我需要根据业务选择不同的值,用where只能产生死的值。 [/quote]
能取个具体的例子吗?是用在什么样的逻辑上呢?