我的问题与以下问题相关:将postgreSQL JSON列映射到Hibernate值类型,尽管当我测试在postgres中将字符串传递给psql时答案有效,但从Java代码传递字符串时却无法解决问题。
我正在使用MyBatis通过Spring注入将sql映射到postgres数据库。
这是MyBatis的Java接口,映射到Postgres JSON列时遇到问题的方法是updateState()方法。
package receiver.spoke;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import receiver.bean.Spoke;
public interface SpokeDAOMyBatis extends SpokeDAO {
void updateState(@Param("id") long spokeId, @Param("state") String state);
String getState(@Param("id") long spokeId);
List<Spoke> getSpokes();
// The close() method must exist.
void close();
}
Run Code Online (Sandbox Code Playgroud)
以下是我的映射器类:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="receiver.spoke.SpokeDAOMyBatis">
<update id="updateState">
UPDATE
spokes
SET
state = #{state}
WHERE
id = #{id}
</update>
<select id="getState" resultType="java.lang.String"
parameterType="long" useCache="false">
SELECT
state
FROM
spokes
WHERE
id …
Run Code Online (Sandbox Code Playgroud)