hibernate ENTITY

有一个实体BEAN
@Entity
@Table(name="WF_NROUTE_TBL")
public class WfNrouteTbl {
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="m_id",referencedColumnName="id")
private WfIdChTbl idTbl;
private Integer last_flg;
@EmbeddedId
private WfNroutePK nrountePk;
private Integer nrtno;
private Integer spc_flg;

如上所示 WF_NROUTE_TBL 表中放一字段M_ID 、该字段中既可以放用户ID也可以放部门ID
我在WfNrouteTbl 实体中作了一个关系
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="m_id",referencedColumnName="id")
private WfIdChTbl idTbl;
WfNrouteTbl 实体中M_ID属性就不能要了
现在的问题时我怎样读到WfNrouteTbl实体的M_ID属性
如果WF_NROUTE_TBL 中放的是用户ID
我可以用getIdTbl().getId取得
如果放的是部门
则根本取不到
该怎样取到M_ID?
谢谢!

假如你不愿意改表的结构的话,只能加一个字段来判断了。

很难理解你为什么要这样做,如果M_ID中存放的用户ID和部门ID是重复的?你怎么区分这个ID到底是用户还是部门呢?建议你更改下你的设计结构。

1,你的上面没看到 M_ID这个字段属性啊。建议把类发全。
2,假如A里面有个id,现在这个id被映射成B对象关联了。那么就a.b.id

是老系统的话,那这个就麻烦了,你的系统有没有报过这方面的错误了,建议你检查下里面的数据,会不会出现重复等问题。