博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql中jpa开发针对BLOB字段的update问题
阅读量:4041 次
发布时间:2019-05-24

本文共 756 字,大约阅读时间需要 2 分钟。

1.当执行SQL:update mblogin set pass = '' where uid = 6800735 ; 此时查询SQL会发现pass是BLOB显示了。

2.然后当JPA执行上述存储时,也没有报错,也update进去了,非BLOB字段的数据也变化了,但是BLOB字段值是没有变化的。

this.userLoginRepository.save(entity)

3.当业务需要进行BLOB进行比较时,发现save后的BLOB字段还是'',而不是之前代码重要存储的真正的byte[]数据;

Arrays.equals(login.getPassword(), this.processSalt(login.getUserId(), login.getRand(), login        .getUpdateTimestamp(), localAccountLoginRequest.getPassword()))

processSalt方法是执行一种算法得到byte数据,2步骤中存储前就是执行的该方法

此时判断equal是值不一致的。

总结:真正正确的初始化BLOB字段数据是如下代码,初始化以后,再save时,BLOB字段值是进行了更新的

UserLoginEntity loginEntity = new UserLoginEntity();loginEntity.setUserId(userId);loginEntity.setPassword(new byte[0]);

setPassword即对应上述的pass字段,通过new byte[0] 进行初始化,判断时可以用其length方法判断。

就跟oracle中的BLOB字段一样,存储数据之前需要先初始化一个BLOB类型的空类型

转载地址:http://xeadi.baihongyu.com/

你可能感兴趣的文章
解决python2.7中UnicodeEncodeError
查看>>
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>
机器学习实战之决策树(一)
查看>>
机器学习实战之决策树二
查看>>
[LeetCode By Python]7 Reverse Integer
查看>>
[leetCode By Python] 14. Longest Common Prefix
查看>>
[LeetCode By Python]118. Pascal's Triangle
查看>>
[LeetCode By Python]121. Best Time to Buy and Sell Stock
查看>>
[LeetCode By Python]122. Best Time to Buy and Sell Stock II
查看>>
[LeetCode By Python]125. Valid Palindrome
查看>>
[LeetCode By Python]136. Single Number
查看>>
[LeetCode By MYSQL] Combine Two Tables
查看>>
Android下调用收发短信邮件等(转载)
查看>>
Android中电池信息(Battery information)的取得
查看>>
SVN客户端命令详解
查看>>
Android/Linux 内存监视
查看>>
Linux系统信息查看
查看>>
用find命令查找最近修改过的文件
查看>>