我在CF中使用ORM将整数插入到MySQL中,带有两个小数点

我在CF中使用ORM将整数插入到MySQL中,带有两个小数点,mysql,orm,coldfusion,Mysql,Orm,Coldfusion,我将我的列数据类型设置为DECIMAL(10,2),并转储我的查询以验证变量是否包含超过小数点的值,但插入后的转储显示我的“itemPrice”是一个四舍五入整数,小数点后有两个零。然而,如果我在脚本之后输入用于设置“itemPrice”的变量,我会得到正确的数字格式,因此我不确定我的错误是什么。代码如下。请原谅这个代码的粗糙性质-我刚刚回到CF 10年后没有编码 <cfspreadsheet action="read" src="#downloadDir#import.xls" quer

我将我的列数据类型设置为DECIMAL(10,2),并转储我的查询以验证变量是否包含超过小数点的值,但插入后的转储显示我的“itemPrice”是一个四舍五入整数,小数点后有两个零。然而,如果我在脚本之后输入用于设置“itemPrice”的变量,我会得到正确的数字格式,因此我不确定我的错误是什么。代码如下。请原谅这个代码的粗糙性质-我刚刚回到CF 10年后没有编码

<cfspreadsheet action="read" src="#downloadDir#import.xls" query="qxldata" excludeheaderrow="yes" columnnames="PartNumber,Name,Price,Category,IsActive,Location,Description,remarks,SubLocation">


<cfloop query="qxldata" startrow="3" endrow="4">

<cfquery name="noDup">
    SELECT * FROM Items
    WHERE itemPN = #qxldata.PartNumber#
</cfquery>
    <cfif noDup.RecordCount EQ 0>


    <cfscript>
        //Insert a new item
        item = new items();
        item.setitemPN(PartNumber);
        item.setitemName(Name);
        item.setitemCategory(Category);
        item.setitemDescription(Description);
        item.setitemBarcodeName("bc"&PartNumber&".jpg");
        item.setitemImageName(PartNumber&".jpg");
        //item.setitemReorderPoint(#listgetAt('#i#',7, ',')#);
        //item.setitemReorderQuantity(#listgetAt('#i#',8, ',')#);
        item.setitemLocation(Location);
        item.setitemSubLocation(SubLocation);
        //item.setitemLength(#listgetAt('#i#',11, ',')#);
        //item.setitemWidth(#listgetAt('#i#',12, ',')#);
        //item.setitemHeight(#listgetAt('#i#',13, ',')#);
        item.setitemRemarks(remarks);
        item.setitemIsActive(IsActive);
        item.setitemVendorID("1");
        IF(Price NEQ ''){
        item.setitemPrice(Price);
        }
        EntitySave(item);
    </cfscript>
    </cfif>
    <cfoutput>
        #Price#
    </cfoutput>
</cfloop>

谢谢你的关注

请按如下方式编辑您的问题。首先,拿走所有条形码的东西。这无关紧要。接下来,添加setItemPrice()方法的代码?我怀疑问题在于您没有使用属性的任何属性来定义属性,例如
type
或mtype
。我的猜测是,由于这些数字没有定义,Hibernate将所有数字都视为整数。尝试将
ormtype=“double”
添加到itemPrice属性DAN中-除非他重写了
setItemPrice()
方法,否则将不会显示任何代码。使用ORM,您可以获得隐式访问器。感谢您的输入!Scott,你说得对-我需要在itemPrice中添加一个ormtype。当我潜入ORM时,我想我在某处读到CF将确定DB列属性并相应地采取行动。我将继续使用types/ormtypes。默认情况下,ORM使用属性定义,但您可以通过在ORM配置中添加
useDBForMapping=true
告诉它使用DB进行映射。文件:
component persistent="true" table="items" {

    property name="itemID" fieldtype="id" generator="increment";
    property itemPN;
    property itemName;
    property itemCategory;
    property itemDescription;
    property itemBarcodeName;
    property itemImageName;
    property itemReorderPoint;
    property itemReorderQuantity;
    property itemLocation;
    property itemSubLocation;
    property itemLength;
    property itemWidth;
    property itemHeight;
    property itemRemarks;
    property itemIsActive;
    property itemVendorID;
    property itemPrice;
}