hibernate一对一关系,多的一方在many-to-one添加属性unique,但多的一方还是可以插入不止一个?

Jesse_____ 2012-01-12 07:52:05
多的一方的类叫做OutputStoreNotify
<many-to-one name="realGoodsBean" column="fk_bus_no"
class="com.*.bean.RealGoods" unique="true">
</many-to-one>
一的一方的类叫做RealGoods
<one-to-one name="outputStoreNotifyBean" class="com.*.bean.OutputStoreNotify"
fetch="join" cascade="all"></one-to-one>

配置文件中多的一方用了unique限制了其只能是一。

但是,我每次选择同一个RealGoods的对象,往里面set不同的OutputStoreNotifyBean,再插入数据库中仍然可以成功。


mysql> select * from output_store_notify;
+----------------------------------+-----------------+--------------+------------+
| output_store_no | fk_bus_no | input_person | input_date |
+----------------------------------+-----------------+--------------+------------+
| 297e9b0434cf20380134cf220f360001 | fjdasklfjasldkf | NULL | NULL |
| 297e9b0434cf24d00134cf26265e0001 | fjdasklfjasldkf | NULL | NULL |
+----------------------------------+-----------------+--------------+------------+
fk_bus_no为外键,指向realGoods的主键,从表中可以看出是多个output对应于一个realGoods。
请问为什么?
...全文
245 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jesse_____ 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 jesse_____ 的回复:]
多的一方的类叫做OutputStoreNotify
<many-to-one name="realGoodsBean" column="fk_bus_no"
class="com.*.bean.RealGoods" unique="true">
</many-to-one>
一的一方的类叫做RealGoods
<one-to-one name="outputStoreNotifyBean……
[/Quote]
不太理解啊,请再说明白一点。
你的意思是重新生成表,也就是说我把原来的表删了,再重建一个。先写hbm文件再建表?
谢谢!
Alonemiss 2012-01-12
  • 打赏
  • 举报
回复
Hibernate中unique的真正意义是根据hbm生成DDL时,
如果设置了unique="true"则生成的表中对应的字段就有unique限制;
而如果是根据数据库的表生成的hbm,那么在hbm中设置的unique="true"是没有任何用处的。
Hibernate不会因为你给这个属性或字段设置了unique为true就给你检查。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧