hibernate

JPA auto flush before any query

放肆的年华 提交于 2021-02-16 08:38:25
问题 From JPA documentation I can see that the AUTO is the default flush mode, flush should happen before any query execution. I have tried this on spring boot jpa and I can see the flush won't happen on queries from different entities , is that expected ? even though different entity may have relation to it ( Department <--> Person here ) The flush should trigger before any query according to this article : https://vladmihalcea.com/how-do-jpa-and-hibernate-define-the-auto-flush-mode/ // this

Spring的使用优点

蹲街弑〆低调 提交于 2021-02-15 17:50:20
spring事物配置,声明式事务管理和基于@Transactional注解的使用 spring支持编程式事务管理和声明式事务管理两种方式。 编程式事务 管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 声明式事务 管理建立在AOP之上的。 其本质是对方法前后进行拦截 ,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。 声明式事务最大的优点就是不需要通过编程的方式管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码 ,只需在配置文件中做相关的事务规则声明(或通过基于@Transactional注解的方式),便可以将事务规则应用到业务逻辑中。 显然声明式事务管理要优于编程式事务管理,这正是spring倡导的非侵入式的开发方式。声明式事务管理使业务代码不受污染,一个普通的POJO对象,只要加上注解就可以获得完全的事务支持。和编程式事务相比,声明式事务唯一不足地方是,后者的最细粒度只能作用到方法级别,无法做到像编程式事务那样可以作用到代码块级别。但是即便有这样的需求,也存在很多变通的方法,比如,可以将需要进行事务管理的代码块独立为方法等等。 声明式事务管理也有两种常用的方式

Trying to GET one topic http://localhost:8080/topics?id=1 in POSTMAN. Got the following error

為{幸葍}努か 提交于 2021-02-15 05:08:39
问题 Connection read-only mode is not enforceable after the connection has been established. To enforce a read only connection, set the read-only data source or connection property. ERRORCODE=4474, SQLSTATE=01000 Here is my Cotroller package com.course.springbootstarter.topic; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org

Spring Boot面试题

孤者浪人 提交于 2021-02-13 21:39:42
Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家。 问题一 Spring Boot、Spring MVC 和 Spring 有什么区别? SpringFrame SpringFramework 最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。 当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。 SpringMVC Spring MVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。 SpringBoot Spring 和 SpringMVC 的问题在于需要配置大量的参数。 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/views/</value> </property> <property name="suffix"> <value>.jsp</value> <

【MiniDao】MiniDao_1.6-SNAPSHOT 版本发布,轻量级Java持久化框架

若如初见. 提交于 2021-02-12 14:16:16
MiniDao-PE 简介 MiniDao-PE 是一种持久化解决方案,类似mybatis的持久层解决方案,可以轻松集成Hibernate工程,事务统一管理,解决了Hibernate工程想支持mybaits的功能问题。Hibernate的最佳辅助方案,轻松集成,让hibernate拥有类mybatis一样的SQL灵活度。 MiniDao-PE 功能特性 O/R mapping不用设置xml,零配置便于维护 不需要了解JDBC的知识 SQL语句和java代码的分离 接口和实现分离,不用写持久层代码,用户只需写接口,以及某些接口方法对应的sql 它会通过AOP自动生成实现类 支持自动事务处理和手动事务处理 支持与hibernate轻量级无缝集成 SQL支持脚本语言 升级日志 支持minidao拦截器 增加@param参数注解方式 性能优化 异常处理机制加强 minidao-pe-example 示例代码完成 spring与minidao集成配置文档 minidao使用指南文档 源码下载 源码下载: http://git.oschina.net/jeecg/minidao-pe QQ交流群: 325978980 技术论坛: www.jeecg.org 本文分享自微信公众号 - JEECG(jeecg521)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“

推荐:Java性能优化系列集锦

不打扰是莪最后的温柔 提交于 2021-02-12 11:20:12
Java性能问题一直困扰着广大程序员,由于平台复杂性,要定位问题,找出其根源确实很难。随着10多年Java平台的改进以及新出现的多核多处理器,Java软件的性能和扩展性已经今非昔比了。现代JVM持续演进,内建了更为成熟的优化技术、运行时技术和垃圾收集器。与此同时,底层的硬件平台和操作系统也在演化。 目录: 一、Java性能优化系列之一--设计优化 二、Java性能优化系列之二--程序优化 三、Java性能优化系列之三--并发程序设计详解 四、Java性能优化系列之四--Java内存管理与垃圾回收机制详解 五、Java性能优化系列之五--JavaIO 现代大规模关键性系统中的Java性能调优,是一项富有挑战的任务。你需要关注各种问题,包括算法结构、内存分配模式以及磁盘和文件I/O的使用方式。性能调优最困难的通常是找到问题所在,即便是经验丰富的人也会被他们的直觉所误导。性能杀手总是隐藏在最意想不到的地方。 这一次,我将在本文中着重介绍Java性能优化的一系列举措,希望能够对现在的你有所帮助。觉得有帮助的朋友也可以转发、收藏一下。 一、Java性能优化系列之一--设计优化 1、善于利用 Java 中的设计模式:享元模式、代理模式、装饰器模式等。详见我的博客文章“大话”设计模式 文章链接:https://blog.csdn.net/person_limit/article/details

精选的Spring Boot 面试题,帮你整理好了!

你。 提交于 2021-02-12 06:50:04
点击上方 成猿之路 ,选择 设为星标 优质文章,及时送达 今天跟大家分享下SpringBoot 常见面试题的知识。 1 什么是springboot ? 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的Tomcat 无需部署war文件 简化maven配置 自动配置spring添加对应功能starter自动化配置 答:spring boot来简化spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用 2 Springboot 有哪些优点? -快速创建独立运行的spring项目与主流框架集成 -使用嵌入式的servlet容器,应用无需打包成war包 -starters自动依赖与版本控制 -大量的自动配置,简化开发,也可修改默认值 -准生产环境的运行应用监控 -与云计算的天然集成 3 如何重新加载Spring Boot上的更改,而无需重新启动服务器? 这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。 Spring Boot有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。

Hibernate: comparing current & previous record

旧时模样 提交于 2021-02-12 05:18:36
问题 I want to compare the current value of an in-memory Hibernate entity with the value in the database: HibernateSession sess = HibernateSessionFactory.getSession(); MyEntity newEntity = (MyEntity)sess.load(MyEntity.class, id); newEntity.setProperty("new value"); MyEntity oldEntity = (MyEntity)sess.load(MyEntity.class, id); // CODEBLOCK#1 evaluate differences between newEntity and oldEntity sess.update(newEntity); In CODEBLOCK#1 I get that newEntity.getProperty()="new value" AND oldEntity

Hibernate: comparing current & previous record

江枫思渺然 提交于 2021-02-12 05:16:51
问题 I want to compare the current value of an in-memory Hibernate entity with the value in the database: HibernateSession sess = HibernateSessionFactory.getSession(); MyEntity newEntity = (MyEntity)sess.load(MyEntity.class, id); newEntity.setProperty("new value"); MyEntity oldEntity = (MyEntity)sess.load(MyEntity.class, id); // CODEBLOCK#1 evaluate differences between newEntity and oldEntity sess.update(newEntity); In CODEBLOCK#1 I get that newEntity.getProperty()="new value" AND oldEntity

cglib的使用

爱⌒轻易说出口 提交于 2021-02-12 04:45:56
cglib大名在java界如雷贯耳,众多优秀的开源项目均使用其来实现各自的功能(spring aop,hibernate等等),这里主要简单介绍一下cglib的使用,对比一下java原生的proxy还有javaassist. 说到cglib第一印象就是动态代理(啥是动态代理?请百度<设计模式>),没错,这是它牛逼的功能之一, 使用cglib构建动态代理核心类就是Enhancer,作用如其名:增强.它能够对目标类的方法进行增强.上代码: /** * Created by wally on 3/1/18. */ public abstract class Animal { private String name; public Animal() { } public Animal(String name) { this .name = name; } public abstract void eat(); public void live(){ System.out.println( "i'm " + name); eat(); } } public class Duck extends Animal { public Duck() { } public Duck(String name) { super (name); } @Override public void eat() {