java – 在Hibernate中正确处理长数据
我在hibernate中收到一个数据太大的问题.那是-
是否可能自动截断所有字段的数据. 解决方法
从我所知道的,Hibernate或
MySQL实际上没有办法自动截断字符串,而没有添加逻辑来处理这个.我相信这样的东西不存在的原因是,我永远不会想要我被要求插入到数据库中,而不是真正插入的内容.
我认为你唯一的选择是… >更改列定义.使它成为一个更大的varchar字段,甚至可能是一个文本字段.只需更改列定义就可以在几次点击中修复这个问题,花点时间来构建一个魔术工具.我建议这样做! setText(String val){this.text = StringUtil.truncate(val,size);} [UPDATE] private static final MAX_SIZE_OF_STRINGS = 255; @Around("execution(* your.package.*.set*(..)) && args(java.lang.String)") public void checkAroundSetter(final ProceedingJoinPoint pjp) throws Throwable { Object[] args = pjp.getArgs(); for (int i = 0; i < args.length; i++) { if (args[i] instanceof String && ((String) args[i]).size() > MAX_SIZE_OF_STRINGS) { args[i] = ((String)args[i]).subString(0,MAX_SIZE_OF_STRINGS) ; } } pjp.proceed(args); } 而且,如果某个层必须检查定义的列大小与每个插入的表中的所有数据相匹配,那么将会有额外的开销. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |