package me.zhengjie.common.exception; import org.springframework.util.StringUtils; import java.util.HashMap; import java.util.Map; import java.util.stream.IntStream; /** * @author jie * @date 2018-11-23 */ public class EntityNotFoundException extends…
这类错id 可能是10,可能是27,也可能是其他数字 错误描述: javax.persistence.EntityNotFoundException: Unable to find 某个类 with id ? 原因: 无论是@OneToOne 还是@ManyToOne,出现这个原因都是因为子表(被关联表)中没有主表(关联表)中ID所对应的记录. 解决办法: 1. 检查为什么子表中没有主表中ID对应的记录 2. 如果子表中没有主表ID对应的记录也可以正常加载数据,那么需要在主表字段上加一个@Not…
报错如下: org.springframework.orm.jpa.JpaObjectRetrievalFailureException: Unable to find com.rollong.chinatower.server.persistence.entity.staff.Department with id 0; nested exception is javax.persistence.EntityNotFoundException: Unable to find com.rollon…
在我们的jpa的helloworld中,我们看到了简单的一个jpa保存操作,下面就来好好学习一下,JPA最主要的几个类 1.基本的几个类: ①:Persistence 类是用于获取 EntityManagerFactory 实例.该类包含一个名为 createEntityManagerFactory 的 静态方法 . createEntityManagerFactory 方法有如下两个重载版本. 带有一个参数的方法以 JPA 配置文件 persistence.xml 中的持久化单元名为参数 我们…
JPA相关接口/类: Persistence Persistence  类是用于获取 EntityManagerFactory 实例.该类包含一个名为 createEntityManagerFactory 的 静态方法 . createEntityManagerFactory 方法有如下两个重载版本. 带有一个参数的方法以 JPA 配置文件 persistence.xml 中的持久化单元名为参数 带有两个参数的方法:前一个参数含义相同,后一个参数 Map类型,用于设置 JPA 的相关属性,这时将…
1. Persistence EntityManagerFactory 2. EntityManager#find EntityManager#getReference EntityManager#persistence EntityManager#remove 3. EntityTransaction(事物) 4.EntityManager 其他方法 5.EntityManager#merge 1.JPA相关接口/类:Persistence .Persistence 类是用于获取 Entity…
*JPA概述 *JPA是什么? - Java Persistence API :用于对象持久化的API - Java EE 5.0平台标准的ORM规范,使得应用程序以统一的方式访问持久化层 - JPA是hibernate的一个抽象(就像JDBC和JDBC驱动的关系): > JPA是规范:JPA本质上就是一种ORM规范,不是ORM框架---因为JPA并为提供ORM实现,它只是制定了一些规范,提供了一些编程的API接口,但具体实现则由ORM厂商提供实现 > Hibernate是实现:Hiberna…
package me.zhengjie.common.exception.handler; import lombok.extern.slf4j.Slf4j; import me.zhengjie.common.exception.BadRequestException; import me.zhengjie.common.exception.EntityExistException; import me.zhengjie.common.exception.EntityNotFoundExcep…
(二)JPA 连接工厂.主键生成策略.DDL自动更新 建议在需要使用时,看看之前的文章,先把环境搭起来. 4.EntityManager EntityManager 是完成持久化操作的核心对象. EntityManager 对象在一组实体类与底层数据源之间进行 O/R 映射的管理.它可以用来管理和更新 Entity Bean, 根椐主键查找 Entity Bean, 还可以通过JPQL语句查询实体. 上面测试代码中,已经使用过EntityManager完成持久化操作. 实体类的状态: 新建状态:…
实体bean,entity 注解设置 持久化是位于JDBC之上的一个更高层抽象.持久层将对象映射到数据库,以便在查询.装载.更新或删除对象的时候,无须使用像JDBC那样繁琐的API.EJB的早期版本中,持久化是EJB平台的一部分.EJB3.0开始,持久化已经自成规范,被称为Java Persistence API. Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库.这些普通Java对象被称作Entity Bean.除了是用Ja…
添加 → 方法参数中有一个有关添加视图模型类型的形参,比如vm→ 根据vm的某个属性,比如Name判断在上下文中是否存在,如果不存在就抛EntityNotFoundException异常→ 判断vm所依赖的外键那对应的那个实体是否存在,比如vm中有各PoductCategoryId外键,就判断下上下文中的ProductCategory是否存在,不存在就抛EntityNotFoundException异常→ 关于1对多关.多对多关系 更新 → 方法参数中有一个有关更新视图模型的形参vm,还有一个主…
一.简介 Java Web有很多成熟的框架,主要可以分为两类Web Application和Web Services.用于Web Application的框架包括官方的Servlet/JSP, JSTL/JSF以及第三方Struts/Spring MVC(action-based).Web Services的项目又可以分为基于XML的(SOAP/WSDL)的和基于JSON的,Java Communitiy为这两种方式都定义了标准,Java EE5引入了JAX-WS(Java API for XM…
EntityManager 是用来对实体Bean 进行操作的辅助类.他可以用来产生/删除持久化的实体Bean,通过主键查找实体bean,也可以通过EJB3 QL 语言查找满足条件的实体Bean.实体Bean 被EntityManager 管理时,EntityManager跟踪他的状态改变,在任何决定更新实体Bean 的时候便会把发生改变的值同步到数据库中.当实体Bean 从EntityManager 分离后,他是不受管理的,EntityManager 无法跟踪他的任何状态改变.EntityMan…
SQLite数据库和JPA简单介绍 一.SQLite简单使用 SQLite是遵循ACID的关系数据库管理系统,它的处理速度很快,它的设计目标是嵌入式的,只需要几百K的内存就可以了. 1.下载SQLitehttp://www.sqlite.org/download.htmlsqlite-dll-win32-x86-201410071659.zip(294.11 KiB)sqlite-shell-win32-x86-3080600.zip解压在文件夹D:\Database\sqlite下,得到文件s…
Previous sections have shown how to return HTTP responses and it is possible to return HTTP errors using the same mechanism. However, sometimes when programming in Java it is more natural to use exceptions for HTTP errors. The following example shows…
EntityManager 是用来对实体Bean 进行操作的辅助类.他可以用来产生/删除持久化的实体Bean,通过主键查找实体bean,也可以通过EJB3 QL 语言查找满足条件的实体Bean.实体Bean 被EntityManager 管理时,EntityManager跟踪他的状态改变,在任何决定更新实体Bean 的时候便会把发生改变的值同步到数据库中.当实体Bean 从EntityManager 分离后,他是不受管理的,EntityManager 无法跟踪他的任何状态改变.EntityMan…
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 本文主要是记录使用 Spring Boot 和 Gradle 创建项目的过程,其中会包括 Spring Boot 的安装及使用方法,希望通过这篇文章能够快速搭建一个项目. 1. 开发环境 操作系统: mac JDK:1.7.0_60 Gradle:2.2.1 IDE:Idea 2. 创建项目…
最近有写一个电子订单商务网站,使用JAVA8,SPRING,ANGULARJS对项目使用的技术和大家分享. 第一次写博客,哪有不对需要改正的请联系改正. 因为是项目是我给别人做的无法提供源码见谅,我尽最大努力让大家能看懂. 首先从项目的构建开始,我采用的gradle构建项目,使用的版本是2.4. 开发环境用的IDEA 14,项目数据库使用的是SQL SERVER. Spring Boot 技术文档:http://docs.spring.io/spring-boot/docs/current/re…
本系列目录:Abp介绍和经验分享-目录 前言 ABP中有个异常UserFriendlyException经常被使用,但是它所在的命名空间是Abp.UI,总觉得和展现层联系过于紧密,在AppService中用也就罢了,在领域层中用它总觉得有点不合适. 那么怎么定义业务异常?既要用起来舒服又能体现业务意义? 几点目标 无需每个业务领域都定义各自的异常类,但使用时要有一定的可读性,能区分不同业务: 要有错误码: 每个错误码对应的提示语不能硬编码,最好能使用已有的本地化语言机制: 要有日志级别,不同的业…
1. RESTful简述    REST是一种设计风格,是一组约束条件及原则,而遵循REST风格的架构就称为RESTful架构,资源是RESTful的核心,一个好的RESTful架构,通过URL就能很清晰的了解其相应的操作和需求是什么,即1. 通过URL定位资源,如:com.mobin/api/v1/shenzhen/subways //获取深圳地铁列表com.mobin/api/v1/shenzhen/schools   //获取深圳学校列表2. HTTP描述操作GET:获取资源POST:创建…
所有的好的Web框架都有一套好的通道截拦的机制,Nancy在我看来是处理最好的.那什么是请求通道那?下面的图可能说的比较清楚些: 正如名称中描述的,一个典型的Web请求在到达最终响应前会穿过一定数量的模块,然后反向通过这些模块到达浏览器. 请求到底要经过多少类型的模块需要根据框架而定.有的多,有的少.越多的处理,响应的就越慢. 定位一个轻量级和模块化的Web框架,它的通道中有很少的环节,使得开发人员可以更好的控制模块如何.在什么情况下可以与框架进行交互. 当我们谈论通道截拦的时候,主要是指Nan…
Java 中遇到null 和为空的情况,使用Optional来解决 示例代码: package crazy; import java.util.Optional; class Company { private String name; private Optional<Office> office; public Company(String name, Optional<Office> office) { this.name = name; this.office = offi…
接着上面的一个部分来叙述,这一篇我们来重点看ABP中的AbpUowActionFilter.AbpExceptionFilter.AbpResultFilter这三个部分也是按照之前的思路来一个个介绍,当然这里面如果和前面的Interceptor有重复的部分,那么将会对两者进行一个对比并作出相关的说明,那么我们现在来一步步来分析这几个Filter的细节. 四   AbpUowActionFilter 这个我们需要和之前的UnitOfWorkInterceptor中的上篇和下篇来进行对比,工作单元…
0.简介 Abp 框架本身针对内部抛出异常进行了统一拦截,并且针对不同的异常也会采取不同的处理策略.在 Abp 当中主要提供了以下几种异常类型: 异常类型 描述 AbpException Abp 框架定义的基本异常类型,Abp 所有内部定义的异常类型都继承自本类. AbpInitializationException Abp 框架初始化时出现错误所抛出的异常. AbpDbConcurrencyException 当 EF Core 执行数据库操作时产生了 DbUpdateConcurrencyE…
很久以前一直用EntityManager下getResultList()查询数据,即便一个数据亦是如此,所以要频繁的List.get(0).新接口getSingleResult()出现了,然后就开始频繁报异常. “No entity found for query     在getSingleResult的源码里有这样一句: @throws EntityNotFoundException if there is no result也就是说,查不到结果时,它是抛异常的,不会返回null...…
hibernate延迟加载代理对象实际对象读取方式 public static <T> T deproxy (T obj) { if (obj == null) return obj; if (obj instanceof HibernateProxy) { // Unwrap Proxy; // -- loading, if necessary. HibernateProxy proxy = (HibernateProxy) obj; LazyInitializer li = proxy.g…
1.ABP异常处理机制是通过过滤器实现的,我们查看的webAPI的异常处理,我们来看看他的源码,AbpApiExceptionFilterAttribute 继承ExceptionFilterAttribute, ITransientDependency public class AbpApiExceptionFilterAttribute : ExceptionFilterAttribute, ITransientDependency { /// <summary> /// Referenc…
1.     查找对象   1)  用find()方法查找对象 public void getPerson(){ EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa"); EntityManager em = factory.createEntityManager(); //相当于Hibernate中的get方法 Person person = em.find(Person.class,…
空指针是我们最常见也最讨厌的异常,写过 Java 程序的同学,一般都遇到过 NullPointerException :) 初识null 详细可以参考[jdk 1.6 Java.lang.Null.Pointer.Exception] —— 为了不抛出这个异常,我们便会写如下的代码: SysUser user = getUserById(id); if (user != null) { String username = user.getUsername(); System.out.printl…
摘要:如何正确的处理API的返回信息,让返回的错误信息提供更多的含义是一个非常值得做的功能.默认一般返回的都是难以理解的堆栈信息,然而这些信息也许对于API的客户端来说有可能并没有多大用途,并没有多大意义.如果我们把错误的信息分成多个字段,这样api客户端就可以解析这些信息,然后给用户反馈更好的错误message.在本文中,我们就来介绍在我们使用springboot来构建RESTAPI时如何更好的更恰当的处理错误信息.使用Spring来构建RESTAPI现在基本上已经变成了java 如何正确的处…