发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 CQRS

帮忙看一下第八章一对一关系映射的问题!在此多谢大家!

2004-10-12 13:34
赞助商链接

在第八章中,表category和表category_details是一对一的关系,关系配置如下:
<ejb-relation>
<ejb-relation-name>category-categoryDetails</ejb-relation-name>
<foreign-key-mapping/>
<ejb-relationship-role>
<ejb-relationship-role-name>CategoryRelationshipRole</ejb-relationship-role-name>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>CategoryDetailsRelationshipRole</ejb-relationship-role-name>
<key-fields>
<key-field>
<field-name>catId</field-name>
<column-name>category_details_Id</column-name>
</key-field>
</key-fields>
</ejb-relationship-role>
</ejb-relation>
但插入数据时就会出错,会凭空多一个字段,通过后台生成的语句可以看到,如下:
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Category] Insert Entity SQL: INSERT INTO category (catId, category_details_Id) VALUES (?, ?)
[org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.CategoryDetails] Insert Entity SQL: INSERT INTO category_details (catId, description, name, Category_categoryDetails) VALUES (?, ?, ?, ?)
本来category_details只有三个字段,而容器生存的sql却多加了一个字段Category_categoryDetails,什么原因?
数据库:mysql 服务器:jboss-3.0.8_tomcat-4.1.24

2004-10-13 09:21

这是建立CMR关系时需要注意的,不能在两个表的主键之间建立CMR,而应该是一主一付。

2004-10-13 15:49

换了一个高版本(jboss4.0)就可以了。
另外一个问题:在EJB和WEB层分别用了一个服务定位器(ServiceLocator),所不同的是EJB层的没有用到“缓存”机制和“单点”机制,为什么EJB层的查找不能缓存起来呢?

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com