实体类

Spring Data JPA 映射VO/DTO对象

我的未来我决定 提交于 2019-12-08 05:19:01
简介 在项目开发中,时常需要根据业务需求来映射VO/DTO对象(这两个概念理解感觉很模糊- 。- ),本文将简单介绍以Spring Data JPA的方式处理实体类映射 HQL方式 public interface MusicTypeRepository extends JpaRepository < MusicType , Integer > { @Query ( "select new cn.srblog.springbootcurd.vo.StudentTypeInfoVo(count(s.id),m.name) " + "FROM MusicType m left JOIN Student s on s.musicTypeId = m.id group by m.id " ) List < StudentTypeInfoVo > getTypeInfo ( ) ; } 填写实体类路径,构造参数顺序要一致,字段名一律为实体类中的属性 如果配置了实体类属性的映射关系,则 on s.musicTypeId = m.id 语句可以省略 VO实体类 @Value public class StudentTypeInfoVo { private Long count ; private String name ; } 使用 Lombok 的 @Value 注解 默认生成带参构造方法

Java面试题之九 (转) 二

前提是你 提交于 2019-12-07 03:54:35
四十六、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 对于这个题,只要弄清楚Math提供的三个与取整相关的方法就OK了。 1.ceil,英文含义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.6)的结果为-11。 2.floor,英文含义是地板,该方法就表示向下取整,Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果-12。 3.round,表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,Math.round(11.5)的结果是12,Math.round(-11.5)的结果为-11。 四十七、Java 有没有goto? java中的保留字,现在没有在java中使用。与此类似的还有个叫const。 四十八、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 接口可以继承接口,用来拓展接口。抽象类也可以实现接口。抽象类也可以继承实体类,只要该实体类有明确的构造方法。其实,任何抽象类最终都是Object的子类。 四十九、abstract 的method是否可同时是static,是否可同时是native

Java 开发之 Lombok 必知必会

做~自己de王妃 提交于 2019-12-06 16:26:23
转载链接地址: https://juejin.im/post/5cf3edf7e51d454f71439c79 1. 前言 在目前众多编程语言中,Java 语言的表现还是抢眼,不论是企业级服务端开发,还是 Andorid 客户端开发,都是作为开发语言的首选,甚至在大数据开发领域,Java 语言也能占有一席之地,如 Hadoop,Spark,Flink 大数据等。而作为已经诞生 24 年的 Java 相比其他语言来说,编写起来略显得冗长和复杂,而为了能极大提升 Java 开发的效率和代码简洁性,一个 Java 库 Lombok 就这样诞生了。 首先我们还是看下 Lombok 官方的描述: Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more. 从上面的说明里我们可以初步认识一下 Lombok

jpql简单l查询

强颜欢笑 提交于 2019-12-06 15:35:32
JPQL 全称 Java Persistence Query Language package com.ytkj.test; import com.ytk.utils.JpaUtils; import org.junit.Test; import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import javax.persistence.Query; import java.util.List; /** * jpql测试 */ public class JpqlTest { /** * 查询全部 */ @Test public void findAll(){ EntityManager entityManager = JpaUtils.getEntityManager(); //开启事务 EntityTransaction transaction = entityManager.getTransaction(); transaction.begin(); //创建query对象 操作实体类而不是直接取操作数据库 String jpql="from Customer"; Query query = entityManager.createQuery(jpql); //查询

JPA的入门CRUD

不羁的心 提交于 2019-12-06 15:33:32
主要目的: 操作实体类就相当于操作数据库表 建立两个映射关系:       实体类和表的映射关系       实体类中的属性和表中字段的映射关系 不在关注sql语句 常见的 orm 框架: Mybatis ( ibatis )、 Hibernate 、 Jpa JPA 的全称是 Java Persistence API , 即 Java 持久化 API ,是 SUN 公司推出的一套基于 ORM 的规范,内部是由一系列的接口和抽象类构成。 JPA 规范本质上就是一种 ORM 规范,注意不是 ORM 框架 —— 因为 JPA 并未提供 ORM 实现,它只是制订了一些规范,提供了一些编程的 API 接口,但具体实现则由服务厂商来提供实现。 JPA 和 Hibernate 的关系就像 JDBC 和 JDBC 驱动的关系, JPA 是规范, Hibernate 除了作为 ORM 框架之外,它也是一种 JPA 实现。 JPA 怎么取代 Hibernate 呢? JDBC 规范可以驱动底层数据库吗?答案是否定的,也就是说,如果使用 JPA 规范进行数据库操作,底层需要 hibernate 作为其实现类完成数据持久化工作。 在 java 工程的 src 路径下创建一个名为 META-INF 的文件夹,在此文件夹下创建一个名为 persistence.xml 的配置文件 <?xml version=

MyBatis-Plus使用(3)-条件构造器

╄→гoц情女王★ 提交于 2019-12-06 12:56:41
说明:   以下出现的第一个入参boolean condition表示该条件是否加入最后生成的sql中   以下代码块内的多个方法均为从上往下补全个别boolean类型的入参,默认为true   以下出现的泛型Param均为Wrapper的子类实例(均具有AbstractWrapper的所有方法)   以下方法在入参中出现的R为泛型,在普通wrapper中是String,在LambdaWrapper中是函数(例:Entity::getId,Entity为实体类,getId为字段id的getMethod)   以下方法入参中的R column均表示数据库字段,当R具体类型为String时则为数据库字段名(字段名是数据库关键字的自己用转义符包裹!)!而不是实体类数据字段名!!!,另当R具体类型为SFunction时项目runtime不支持eclipse自家的编译器!!!   以下举例均为使用普通wrapper,入参为Map和List的均以json形式表现!   使用中如果入参的Map或者List为空,则不会加入最后生成的sql中!!!   有任何疑问就点开源码看,看不懂函数的点击我学习新知识 警告:   wrapper 很重   传输 wrapper 可以类比为你的 controller 用 map 接收值(开发一时爽,维护火葬场)   正确的 RPC 调用姿势是写一个 DTO

实体类之间属性对比的方法

回眸只為那壹抹淺笑 提交于 2019-12-06 12:23:51
分享一个实体类之间属性对比的方法 方法用途:对实体类的属性进行修改操作;如果当前修改操作与原先的实体类属性值一样则返回为true,无需进行修改操作;反之则进行修改操作; 参考连接: https://www.cnblogs.com/mollie-x/p/10569286.html import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.junit.Test; import com.datacode.bean.standardtitle.StandardTitle; public class CompareUtil { /** * 比较两个实体属性值,返回一个boolean,true则表时两个对象中的属性值无差异 *

java自动生成实体类(带注释)和controller层,service层 dao层 xml层,亲测可行

元气小坏坏 提交于 2019-12-06 02:21:47
参考:https://blog.csdn.net/qq_37557563/article/details/90041523package test; import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.config.DataSourceConfig;import com.baomidou.mybatisplus.generator.config.GlobalConfig;import com.baomidou.mybatisplus.generator.config.PackageConfig;import com.baomidou.mybatisplus.generator.config.StrategyConfig;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;/** * @Author E0422 * @Description //TODO 代码自动生成 * @Date 11:14 2019/11/29 * @Param * @return *

一个小案例来理解实体类中重写equals()和hashCode()方法的必要性

一世执手 提交于 2019-12-06 02:09:09
今天在使用list的indexOf()方法时,自己新添加的一个对象,通过list的indexOf来查看list里面有没有这个对象,但是无论怎么尝试都返回-1(无法获取到指定的对象),后来发现是实体类对象没有重写equals()和hashCode()方法。代码的案例如下: 1.实体类emp如下: public class Employee{ private int id; private int name; //构造方法 public Employee(String name){ this.name =name; } //省略get,set方法... } 2.写一个测试方法,我们希望手动添加一个Emp对象,通过list的indexOf方法来找到已有的emp对象name相同的emp对象。 public static void main(String[] args) { Employee emp1 = new Employee();//创建第一个员工 emp1.setName("test1"); Employee emp2 = new Employee();//创建第二个员工 emp2.setName("test2"); List<Employee> emps = new ArrayList<>();//将员工存入到list emps.add(emp1); emps.add(emp2);

java.lang.IllegalArgumentException: A null value cannot be assigned to a primitive type

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-05 23:28:07
今天做项目测试接口,查询数据时出现以下错误,记录一下。 查询语句和错误信息: 实体类属性 原因是 由于字段 total和receive 在实体类中使用的是 int类型,但是数据库中查询出来的数据为null ,赋值的时候是不能把null 赋值给Java 基础类型的。 这里就有一个Java 的基础知识点:Java 基础类型不能为null。 解决办法:把实体映射的类型改为包装类型就OK。 来源: https://www.cnblogs.com/rong0912/p/11950340.html