hibernate中无法使用非主键作为外键?

时间:2021-12-24 05:13:29
java:
public class Coment{
String id;
String userId;
String userName;
}

hbm.xml:
<class name="Comment" table="comment" catalog="test">
<id name="id" column="id">
    <generator class="native"/>
</id>
<property name="userId" column="userId" not-null="true"/>
<join table="user">
<key column="id" property-ref="userId"/>
<property name="userName" column="name"/>
</join>
</class>

我想通过userId与user表联合,可是,运行的时候它总是通过comment表的主键来建立联合。为什么?大家帮个忙。谢谢了!

4 个解决方案

#1


我这样查询:find("from Commment");

#2


可以,你仔细看看说明文件.(如果你不配制,默认用主键)

#3


谢谢nearsun(蓝冰) 
我认为property-ref="userId"应该就起了这样的作用,可是并不是这样?

#4


解决了,用子查询。这样:<property name="userName" formula="(select user.name from user where user.id=userId)"/>

#1


我这样查询:find("from Commment");

#2


可以,你仔细看看说明文件.(如果你不配制,默认用主键)

#3


谢谢nearsun(蓝冰) 
我认为property-ref="userId"应该就起了这样的作用,可是并不是这样?

#4


解决了,用子查询。这样:<property name="userName" formula="(select user.name from user where user.id=userId)"/>