mybatis语法insert插入oracle返回实体,怎么做?

mybatis语法insert插入oracle返回实体,如下页面的代码 :

<insert id="insert" parameterType="com.uet.course.entity.Textbook">
		<selectKey resultType="java.lang.Long" keyProperty="id" order="BEFORE">
			SELECT SEQ_T_TEXTBOOK.nextval from dual  
		</selectKey>
		INSERT INTO T_TEXTBOOK(
			F_ID,
			F_INNER_ID,
			F_COURSE_ID,
			F_GRADE_ID,
			F_VERSION_ID,
			F_TEXTBOOK_NAME,
			F_VOLUMES,
			F_COVER_PATH,
			F_CREATE_TIME
		)
		VALUES(
			#{id,jdbcType=NUMERIC}, 
			#{innerId,jdbcType=VARCHAR},				
			#{courseId,jdbcType=NUMERIC}, 
			#{gradeId,jdbcType=NUMERIC}, 
			#{versionId,jdbcType=NUMERIC}, 
			#{textbookName,jdbcType=VARCHAR},				
			#{volumes,jdbcType=NUMERIC}, 
			#{coverPath,jdbcType=VARCHAR},				
			#{createTime,jdbcType=TIMESTAMP}
		)
	</insert>
dao层是这样的:
public interface BaseDao<T extends BaseEntity> {
	public T insert(T item);

	public List<T> page(@Param("item") T item, @Param("page") Page page);
		
	public T update(T item);	
	
	public T load(Long id);
	
	public void delete(Long id);
	
	public int count(@Param("item") T item);
	
	public List<T> list(@Param("item") T item, @Param("orderby")String orderby,@Param("limit")Integer limit);
}
这样话,提示"has an unsupported return type"

应该怎么做呢?

草木全
分享到:
0

sql语言里,insert/update本身返回的影响的行数。

java语言里,传递的是对象的引用。

理解这两条的话,你就明白了。

使用:public long  insert(T item);

在service里直接返回传的item即可。因为xml里对item的id已赋值过了。

共1条评论

草木全 透视了原理 「4年前」
1
共 1 条   当前1/1页

© 2014 究问社区 copyRight 豫ICP备13003319号-1