JPA所遇问题汇总

Correct the classpath of your application so that it contains a single, compatible version of xxxxxx

这种问题多半是POM文件中添加的包的版本不兼容,一般来说,我们默认选择了spring-boot的版本后,其他包的类似涉及到spring-boot-framework中的其他工具包时,就没必要指定版本了,它会默认选择和当前spring-boot适配的包加载进来
我当时这个问题就是纯粹照着教程上选择了

<springdatajpa.version>2.0.1.RELEASE</springdatajpa.version>

结果出现了项目无法启动的error

java.lang.NullPointerException

这个问题很可笑,是因为我忘了在测试代码中,创建Repository实体时忘记了添加

@Autowired

Consider defining a bean of type ‘xxx’ in your configuration或者Autowire的持久化类借口有错误的

很可笑,我的接口是没问题的,不过在其接口的Imp实现类上没有添加@Component组件,加上@Service也是一样的,@Service也有@Component组件注入功能

JPA 传送Date,带时分秒的数据

首先,数据库中对应类型为datetime,date只有年月日,time只有时分秒,datetime全有
然后
参考

使用JPA自带查询函数findById时必须加orElse后面那一点部分,要不然报错,如下:

findById(id).orElse(new Obj ());

使用specification多条件查询时,使返回结果排序后输出

参考
以及我的代码:

//按照时间降序排序
criteriaQuery.orderBy(criteriaBuilder.desc(root.get("push_date")));
criteriaQuery.where(pAND,pOr);
//predicate.getExpressions().add(pAND);
return criteriaQuery.getRestriction();

运用JPA的Specification级联查询时出现递归爆栈,而且多为String.append()错误时

根源,对于关联实体中的list是无法输出的,打印时应该避免输出这一项。
解决方法:
1.实体类中重写toString()方法
2.在控制台输出时,只输出实体类中的String,Int类型变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值