[英]MappingException: Type can not be determined for java.util.Set
[英]How to insert data of type java.util.Set into my sql database with column of type set using ibatis?
如何將類型java.util.Set的數據插入類型為set(mysql set type)的mysql db列中?
我的POJO:
public class UserTEO
{
private Integer id;
private Set changedfieldset;
//getters and setters
}
xml文件:
<sqlMap namespace="user">
<typeAlias alias="USER" type="com.howtodoinjava.ibatis.demo.dto.UserTEO" />
<insert id="addUser" parameterClass="USER">
INSERT INTO USERINFO (ID,CHANGEDFIELDSET)
VALUES(#id#,#changedfieldset#);
</insert>
</sqlMap>
數據庫:
CREATE TABLE USERINFO
(
ID INT,
CHANGEDFIELDSET SET('')
);
例外情況:
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in user.xml.
--- The error occurred while applying a parameter map.
--- Check the user.addUser-InlineParameterMap.
--- Check the parameter mapping for the 'changedfieldset' property.
請幫忙。 謝謝 !
我猜您明確地想使用(舊)ibatis,而不是Mybatis。 這是我參考的文檔 。
Mysql SET期望使用逗號分隔且不帶空格的設置值字符串: StringUtils.join(set, ",")
。 因此,您必須使用類型處理程序將java Set轉換為以下字符串:Extend BaseTypeHandler ,特別是覆蓋setParameter
方法。
然后調用如下:
INSERT INTO USERINFO (ID,CHANGEDFIELDSET)
VALUES(#id#,#changedfieldset,handler=YourCustomTypeHandlerTypeAlias#)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.