【发布时间】:2012-08-23 06:42:01
【问题描述】:
我正在尝试从 XML 文件中获取一些订单信息并尝试将其存储在数据库(MySQL)表中。我可以从 XML 文件中检索订单信息,但是当我尝试插入表时,它显示错误为 MySQLIntegrityConstraintException。
我的程序包含如下,
def Order = new XmlParser().parse("MyXml.xml")def set1 = sql.dataSet("order_item")def set2 = sql.dataSet("order_header")Order.order_item.each {// retrieving order information and storing}set1.add(Column_Name1:order_id,Column_Name2:field2,Column_Name3:field3)set2.add(Column_Name1:order_id)
我在下面详细列出了错误
警告:执行失败:插入 order_item (order_id, order_item_seq_id, order_item_type_id、product_id、prod_catalog_id、数量、unit_price、unit_lis t_price, item_description, status_id) 值 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 因为 使用:无法添加或更新子行:外键约束失败(
ecommerc e/order_item, CONSTRAINTORDER_ITEM_HDRFOREIGN KEY (ORDER_ID) REFERENCESorder_header(ORDER_ID)) 抓到:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationExcepti on:无法添加或更新子行:外键约束失败(ecommerce /order_item, CONSTRAINTORDER_ITEM_HDRFOREIGN KEY (ORDER_ID) REFERENCESo rder_header(ORDER_ID)) com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:Cann ot 添加或更新子行:外键约束失败 (ecommerce/order_i tem, CONSTRAINTORDER_ITEM_HDRFOREIGN KEY (ORDER_ID) REFERENCESorder_hea der(ORDER_ID)) 在 com.mysql.jdbc.Util.handleNewInstance(Util.java:409) 在 com.mysql.jdbc.Util.getInstance(Util.java:384) 在 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1041) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3562) 在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3494) 在 com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1960) 在 com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2114) 在 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2696) 在 com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.ja 弗吉尼亚州:2105) 在 com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java :2398) 在 com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java :2316) 在 com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java :2301) 在 db2xml.XMLToDatabase$_main_closure2.doCall(XMLToDatabase.groovy:52) 在 db2xml.XMLToDatabase.main(XMLToDatabase.groovy:38)
谁能帮我解决这个问题。在此先感谢
【问题讨论】:
-
看起来您正在尝试添加一个在您的数据库中不存在的 order_id,因此导致您的外键检查失败。
-
但默认情况下 order_id 是由应用程序自动生成的,因为我将它作为一个 api 与应用程序集成如何处理这个
-
您的 gorm 对象未正确建模您的数据库。你可能想看看反向数据库工程插件
-
@Chrislovecnm.. 所以你的意思是我想单独使用一些数据库插件来处理这个?
标签: grails