在Spring Hibernate中操作JSON数组

时间:2014-12-30 16:07:52

标签: java mysql json spring hibernate

我正在尝试使用Spring和Hibernate在MySQL中存储JSON数组。

应用程序从用户那里获取喜欢并将用户的id存储在JSON数组中,例如

[1,2,3,4,5,6]

在列名likes中,类型为text(MySQL)

¿如何在数组中添加新的id?我的意思是,获取JSON表单数据库并插入id并计算元素数量。

1 个答案:

答案 0 :(得分:2)

我使用transient变量作为此问题的解决方案。我不认为有更好的解决方案。您也可以尝试使用休眠interceptors作为解决方案。

@Table
@Entity(name='Likes')
public class LikesEntity implements Serializable {

    @Transient
    private List<String> userIds;
    @Column
    private String likes;
    @Column
    private String count;

     //getter and setters for the like and count
    ...
    public void addUserId(String id){
        this.userIds.add(userIds);
        this.likes = convertToJsonArray(userIds); // use GSON or Jackson or any other library that can help you convert array to JSON string
        this.count = this.userIds.size();
    } 


}

在您的服务层内执行以下操作

 @Transactional(lockmode = LockMode.READ){
   LikesEntity le = sess.get(LikesEntity.class,234);
   le.addUserId("userPk");
   session.saveOrUpdate(le);
 }