IBatisnet的insert返回主键出错

m_halfman 2008-01-23 06:08:05
网上查了很多代码,都是这么写的

<!- Microsoft SQL Server ->
<insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product">
insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
<selectKey resultClass="int" keyProperty="id" >
SELECT @@IDENTITY AS ID
</selectKey>
</insert>

我这么写却出错,错误是:
- The error occurred while loading SqlMap.
- loading insert tag
- The error occurred in <sqlMap resource="maps/HotelAuditLock.xml" xmlns="http://ibatis.apache.org/dataMapper" />. at IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Build(XmlDocument document, DataSource dataSource, Boolean useConfigFileWatcher, Boolean isCallFromDao)

我想是不是因为这是java的写法?那么.net的写法呢?望赐教
...全文
361 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WIKESOFT 2012-03-09
  • 打赏
  • 举报
回复

public int InsertAttachment(AttachmentEntity entity)
{
int ret=1;
ret = Mapper.Instance.QueryForObject<int>("GetKeyAfterInsertAttachment", entity);
return ret;
}



<select id="GetKeyAfterInsertAttachment" parameterClass="Attachment" resultClass="int">

insert into [E_Attachment](TypeID,AttachmentName,Path,TrueName,Userid,Remark,CreateTime) values (#TypeID#,#AttachmentName#,#Path#,#TrueName#,#Userid#,#Remark#,#CreateTime#)
SELECT SCOPE_IDENTITY() AS AttachmentID
</select>
CSDNCFO 2011-07-06
  • 打赏
  • 举报
回复
mark
m_halfman 2008-01-24
  • 打赏
  • 举报
回复
搞不定啊,郁闷了。
<selectKey resultClass="int" keyProperty="LockId">
SELECT @@IDENTITY AS VALUE
</selectKey>

- The error occurred while loading SqlMap.
- loading insert tag
- The error occurred in <sqlMap resource="maps/HotelAuditLock.xml" xmlns="http://ibatis.apache.org/dataMapper" />. at IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Build(XmlDocument document, DataSource dataSource, Boolean useConfigFileWatcher, Boolean isCallFromDao)
vrhero 2008-01-24
  • 打赏
  • 举报
回复
SELECT @@IDENTITY AS VALUE
---------------
Value和#Value#有特别的含义...去它的官方网站下载个文档多看看...
m_halfman 2008-01-24
  • 打赏
  • 举报
回复
parameterClass里已经定义了LockId
SELECT @@IDENTITY AS ID这句呢?要把ID或IDENTITY改成LockId吗?
vrhero 2008-01-24
  • 打赏
  • 举报
回复
keyProperty指定的id必须和你parameterClass中对应的id一致...整个map文件都是这样...所有的id都必须匹配...
m_halfman 2008-01-24
  • 打赏
  • 举报
回复
是<selectKey>段的问题,我去掉这部分就好了。

我的字段名是LockId,这么写有问题吗?在parameterClass里已定义。
<selectKey resultClass="int" keyProperty="LockId">
SELECT @@IDENTITY AS ID
</selectKey>
vrhero 2008-01-23
  • 打赏
  • 举报
回复
map文件就是这样的...跟java,.net没关系...

出错说明你map配置不对...原因就说不清楚了...比如

1.parameterClass指定的com.domain.Product找不到...
2.com.domain.Product没有description属性...
3.com.domain.Product没有id属性...

都会报这个错...

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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