移动项目:Springboot和微信小程序集成5
Posted 且行且思 对酒当歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动项目:Springboot和微信小程序集成5相关的知识,希望对你有一定的参考价值。
今日将完成后台逻辑:
昨天没有解决的日期存储问题:给予解决
说明:
1.@Column注解提示mysql用Date类型存储,不必要的
2.@Temporal注解作用:格式化Date类型,不必要
3.@JsonFormat注解中的Pattern也是不必要的,我们只用把日期对象格式化后变成一个String就可以了,另外注意时区问题
4.
5.接口:
6.问题2,如何设置日期增加一天或两天?
Java中提供了Calendar类来实现这个功能,学过但是咱没有用过
方法:1.Calendar.getInstance();
日历是一个单例模式,没有多个不同的日历,相比于简单的Date对象,Calendar类可以灵活的操纵时间,再需要改动的时间的时候用到!
我们发现set方法较为符合实际
开发时:先写业务逻辑,数据接口层的方法现用现写
7.问题3:我们发现要根据拼团池的id来获取用户信息,但是id是主键,意义不大?
解决方案:因此我们可以给拼团池增设一个流水号字段,在User实体类中增设一个数据类型,存储用户所在拼团池的流水号,将来用户获取他所在的拼团池,只需要获取用户的流水号,再由流水号查找拼团池就可.
8.问题4:我们在外键应用上有问题,
在拼团池的被删去时,我们应当将JPA自动维护的外键设置为空,而不是仍然存在.
先尝试:Cascade的Refresh操作:
Bug1:
Validation failed for query for method public abstract int com.example.demo.Repositories.poolsRepositories.deleteByRandomPoolsid(long)!
原因:
Unable to locate Attribute with the the given name [randomPoolsid] on this ManagedTye
解决方案:
Bug2:
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'entityManagerFactory' defined in class path resource
[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.MappingException: Unable to find column with logical name: RandomId in org.hibernate.mapping.Table(tb_pools) and its related supertables and secondary tables
没有办法找到映射的键:
Bug3:
Exception encountered during context initialization - cancelling refres h attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'globalServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'poolsRepositories': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract com.example.demo.Beans.pools com.exaple.demo.Repositories.poolsRepositories.findByRandomPoolsid(long)! Unable to locate Attribute with the the given name [randomPoolsid] on this ManagedType [com.example.demo.Beans.pools]
这个异常的原因是Jpa的命名规范:
符合标准命名法后这样就能过了,艹
这里发现randomPoolsid在使用驼峰命名的时候,中间自动转换为了下划线和小写,所以可能是无法转换造成的.
利用Jpa初始化数据如下:
没有问题:
我们预想.每个用户应当随机生成一个uid,我们通过uid看一下:
Bug4:NoSuchElementException:
表示什么呢?-----------------表示的东西是我是一个可以存储的对象,Optional,----------当值为空,直接get()时抛出该异常,这个异常很常见,需要先判断为空值!
在GlobalExceptionHandler中可以有相应的处理函数
Bug5:
Optional long parameter 'poolrandom' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.
惨案:
1.primitive type:原始的
2.那怎么办呢?------------------包装类的东西别忘了,要记得:Long/long
3.在继承JpaRepository接口时,小心泛型参数中的最后一个变量,他代表了id的类型
在建表的时候,全部使用包装类
以上是关于移动项目:Springboot和微信小程序集成5的主要内容,如果未能解决你的问题,请参考以下文章