精华内容
下载资源
问答
  • @Data注解

    万次阅读 2019-08-10 16:47:51
    在实体类的编写过程中,常常需要应用大量的get、set方法,需要写大量的重复代码,即有... 接下来简明扼要的介绍一下@Data注解的功能与使用方法 ## 注解功能 1、@Data可以为类提供读写功能,从而不用写get、set方法...

    在实体类的编写过程中,常常需要应用大量的get、set方法,需要写大量的重复代码,即有的工具有自动生成功能,当时也会使实体类中产生大量冗余代码,使得代码变,springboot为我们提供了相应注解可以解决这类问题----@Data
        接下来简明扼要的介绍一下@Data注解的功能与使用方法
        ## 注解功能
            1、@Data可以为类提供读写功能,从而不用写get、set方法。
            2、他还会为类提供 equals()、hashCode()、toString() 方法。
            ## 使用方法--一下仅提供idea的使用方法
            1、下安装lombok插件
        ![settings/plugins在插件库中搜索安装即可。](https://img-blog.csdnimg.cn/20190501112839630.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Jlbnh0MDUwOA==,size_16,color_FFFFFF,t_70)
        2、重启idea
        3、在maven库中添加依赖
                <dependency>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>1.16.10</version>
                </dependency>
        4、在实体类上添加@Data注解即可生效

    展开全文
  • Spring Data 注解介绍

    千次阅读 2019-07-25 15:23:56
    Spring Data是Spring 的一个子项目,用于简化数据库访问。Spring Data提供了对数据存储技术的抽象。使业务逻辑代码可以更加独立于底层的持久化实现。目前Spring Data支持NoSQL和关系...1 常见的Spring Data注解...

    Spring Data是Spring 的一个子项目,用于简化数据库访问。Spring Data提供了对数据存储技术的抽象。使业务逻辑代码可以更加独立于底层的持久化实现。目前Spring Data支持NoSQL和关系数据库存储。

    在本文中,我们将介绍Spring Data,Spring Data JPA和Spring Data MongoDB项目中最常见的注解。

    1 常见的Spring Data注解

    1.1 @Transactional

    当我们想要配置方法的事务行为时,我们可以使用:

    @Transactional
    void pay() {}
    

    如果我们在类级别上使用此注解,那么它适用于类中的所有方法。但是我们也可以通过对特定方法来单独设置。

    1.2 @NoRepositoryBean

    有时我们想要创建存储库接口,其唯一目标是为子存储库提供通用方法。也就是说,使用了该注解的接口不会被单独创建实例,只会作为其他接口的父接口而被使用。这个公共接口就需要这个注解@NoRepositoryBean来标识。

    例如,如果我们想在所有存储库中使用Optional findById(ID id) 方法,我们可以创建一个基本存储库:

    @NoRepositoryBean
    interface MyUtilityRepository<T, ID extends Serializable> extends CrudRepository<T, ID> {
        Optional<T> findById(ID id);
    }
    

    此注解不会影响子接口; 因此Spring将为以下子存储库接口创建一个bean:

    @Repository
    interface PersonRepository extends MyUtilityRepository<Person, Long> {}
    
    

    1.3 @Param

    我们可以使用@Param将命名参数传递给我们的查询:

    @Query("FROM Person p WHERE p.name = :name")
    Person findByName(@Param("name") String name);
    

    也可以传递Collection参数:

    @Query(value = "SELECT u FROM User u WHERE u.name IN :names")
    List<User> findUserByNameList(@Param("names") Collection<String> names);
    

    1.4 @ID

    @Id 将模型类中的字段标记为主键:

    class Person {
     
        @Id
        Long id;
     
        // ...
         
    }
    

    由于它与具体实现无关,因此它使模型类易于与多个数据存储引擎一起使用。

    1.5 @Transient

    @Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,数据存储引擎不会读取或写入此字段的值:

    class Person {
     
        // ...
     
        @Transient
        int age;
     
        // ...
     
    }
    

    1.6 @CreatedBy,@ LastModifiedBy,@ ManagingDate,@ LastModifiedDate

    通过这些注解可以为我们的数据模型添加一些审计信息。

    public class Person {
     
        // ...
     
        @CreatedBy
        User creator;
         
        @LastModifiedBy
        User modifier;
         
        @CreatedDate
        Date createdAt;
         
        @LastModifiedDate
        Date modifiedAt;
     
        // ...
     
    }
    

    2 Spring Data JPA注解

    2.1 @Query

    使用@Query,我们可以为存储库方法提供JPQL实现:

    @Query("SELECT COUNT(*) FROM Person p")
    long getPersonCount();
    

    另外,我们可以使用命名参数:

    @Query("FROM Person p WHERE p.name = :name")
    Person findByName(@Param("name") String name);
    

    此外,如果我们将nativeQuery 参数设置为true,我们可以使用原生SQL查询:

    @Query(value = "SELECT AVG(p.age) FROM person p", nativeQuery = true)
    int getAverageAge();
    

    2.2 @Procedure

    使用此注解我们可以轻松地从存储库调用存储过程。
    首先,我们需要使用标准JPA注解在实体类上声明存储过程:

    @NamedStoredProcedureQueries({ 
        @NamedStoredProcedureQuery(
            name = "count_by_name", 
            procedureName = "person.count_by_name", 
            parameters = { 
                @StoredProcedureParameter(
                    mode = ParameterMode.IN, 
                    name = "name", 
                    type = String.class),
                @StoredProcedureParameter(
                    mode = ParameterMode.OUT, 
                    name = "count", 
                    type = Long.class) 
                }
        ) 
    })
     
    class Person {}
    

    之后,我们可以在存储库中使用我们在name参数中声明的名称来调用它:

    @Procedure(name = "count_by_name")
    long getCountByName(@Param("name") String name);
    

    2.3 @Lock

    我们可以在执行查询方法时配置锁定模式:

    @Lock(LockModeType.NONE)
    @Query("SELECT COUNT(*) FROM Person p")
    long getPersonCount();
    

    可用的锁模式:

    • READ
    • WRITE
    • OPTIMISTIC: 它和READ锁模式相同,JPA 2.0仍然支持READ锁模式,但明确指出在新应用程序中推荐使用OPTIMISTIC。
    • OPTIMISTIC_FORCE_INCREMENT:它和WRITE锁模式相同,JPA 2.0仍然支持WRITE锁模式,但明确指出在新应用程序中推荐使用OPTIMISTIC_FORCE_INCREMENT。
    • PESSIMISTIC_READ:只要事务读实体,实体管理器就锁定实体,直到事务完成锁才会解开,当你想使用重复读语义查询数据时使用这种锁模式,换句话说就是,当你想确保数据在连续读期间不被修改,这种锁模式不会阻碍其它事务读取数据。
    • PESSIMISTIC_WRITE:只要事务更新实体,实体管理器就会锁定实体,这种锁模式强制尝试修改实体数据的事务串行化,当多个并发更新事务出现更新失败几率较高时使用这种锁模式。 当事务读实体时,实体管理器就锁定实体,当事务结束时会增加实体的版本属性,即使实体没有修改。
    • PESSIMISTIC_FORCE_INCREMENT:
    • NONE: 无锁

    2.4 @Modifying

    如果我们使用@Modifying进行注解,我们可以使用存储库方法修改数据:

    @Modifying
    @Query("UPDATE Person p SET p.name = :name WHERE p.id = :id")
    void changeName(@Param("id") long id, @Param("name") String name);
    

    2.5 @EnableJpaRepositories

    使用@EnableJpaRepositories注解来指定开启JPA存储库。注意,我们必须在@Configuration中使用此注释:

    @Configuration
    @EnableJpaRepositories
    class PersistenceJPAConfig {}
    

    Spring将在此@Configuration 类的子包中查找存储库。可以使用basePackages 参数更改包的路径:

    @Configuration
    @EnableJpaRepositories(basePackages = "org.peterwanghao.persistence.dao")
    class PersistenceJPAConfig {}
    

    3 Spring Data Mongo注解

    3.1 @Document

    此注解将类标记为我们要保留到数据库的域对象:

    @Document
    class User {}
    

    它还允许我们选择我们想要使用的集合的名称:

    @Document(collection = "user")
    class User {}
    

    此注解类似于JPA中的@Entity。

    3.2 @Field

    使用@Field,我们可以配置MongoDB持久化保存文档时要使用的字段的名称:

    @Document
    class User {
     
        // ...
     
        @Field("email")
        String emailAddress;
     
        // ...
     
    }
    

    此注解类似于JPA中的@Column。

    3.3 @Query

    使用@Query,可以在MongoDB存储库方法上提供查询:

    @Query("{ 'name' : ?0 }")
    List<User> findUsersByName(String name);
    

    3.4 @EnableMongoRepositories

    使用@EnableMongoRepositories注解来指定开启MongoDB存储库。类似于JPA中的@EnableJpaRepositories。

    4 结论

    在本文中,我们看到了使用Spring时我们需要处理数据的最主要的一些注解。此外,我们介绍了最常见的JPA和MongoDB注解。

    展开全文
  • @Data 注解

    2019-08-02 10:33:55
    今天导入别人代码时,发现有错误。看代码发现是因为定义的类里面没有get/set方法,而使用了get/set方法,很显然不可能是开发...查找了一下发现类上面有@Data 注解。 package com.comtop.map.store.mobile.bean...

    https://blog.csdn.net/nnn_net/article/details/84992695

    今天导入别人代码时,发现有错误。看代码发现是因为定义的类里面没有get/set方法,而使用了get/set方法,很显然不可能是开发人员的错误,不然代码都编译不了。查找了一下发现类上面有@Data 注解。

    package com.comtop.map.store.mobile.bean.response;
    
    import com.comtop.map.store.mobile.bean.enums.ArticleType;
    import lombok.Data;
    
    import java.util.List;
    
    /**
     * 动态类型
     *
     * @author lihui4
     * @version 2018-08-01 lihui4
     * @since 1.0
     */
    @Data
    public class ArticleTypeVO {
    
        private String value;
        private String label;
    
        private List<ArticleTypeVO> children;
    
    
        public static ArticleTypeVO convertToArticleTypeVO(ArticleType articleType){
            if(articleType == null){
                return null;
            }
            ArticleTypeVO vo = new ArticleTypeVO();
            vo.setValue(articleType.getCode() + "");
            vo.setLabel(articleType.getName());
            return vo;
        }
    }
    

    本人开发软件是IDEA 所以在 File---setting--Plugins 中搜索lombok Plugin  下载这个包重启软件就发现错误不见了。

    本人以为 @Data 注解

    主要是为了提高代码的简洁 
    去除Getter,Setter,equals,hashCode,toString方法

    深入的理解还需要学习。

     

    展开全文
  • Springboot @Data注解

    2019-12-03 11:32:30
    @Data 注解 @Data 注解在类上,提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法 使用教程如下: 下载 Lombok 插件 File --> Setting --> Plugins 导入...

    @Data 注解

    @Data 注解在类上,提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法

    使用教程如下:

    下载 Lombok 插件

    File --> Setting --> Plugins
    在这里插入图片描述

    导入依赖

    pom.xml 文件:

    <!-- @Data -->
    <dependency>
    	<groupId>org.projectlombok</groupId>
    	<artifactId>lombok</artifactId>
    	<version>1.16.10</version>
    </dependency>
    

    使用

    User 类:

    importlombok.Data;
    
    import javax.persistence.*;
    
    @Entity
    @Data
    @Table(name = "users")
    public class User {
        @Id
        @GeneratedValue
        private Integer id;
    
        @Column(length = 11)
        private String tel;
    
        private String email;
    
        private String username;
    
        private String password;
    }
    

    测试

    @Autowired
    private UserDao userDao;
    
    @Test
    void testSave(){
    	// 自定义查询,详情可见 https://blog.csdn.net/weixin_45703665/article/details/103351737
    	User user = userDao.findUserByTel("13030303030");
    	System.out.println(user.getId());
    	System.out.println(user.getUsername());
           System.out.println(user.getEmail());
           System.out.println(user.getPassword());
    }
    

    输出结果:

    1
    用户名
    admin@qq.com
    123456
    
    展开全文
  • @Data注解如何使用

    千次阅读 2019-02-27 13:39:50
    这个注解来自于 lombok,lombok 能够减少大量的模板代码,减少了在使用@Data 注解时, 需要导入lombok.Data lombok提供的注解: ...例:配置maven依赖,导入lombok@Data注解,减少了getter,toString等代码 ...
  • 文章目录Spring Data Annotations@Transactional@NoRepositoryBean@Param@Id@...Spring Boot中Spring data注解的使用 Sring data JPA为我们提供了很多有用的注解,方便我们来实现各种复杂的功能。本文我们将会从Spr
  • @Data 注解使用

    2020-03-10 14:35:56
    在实体类的编写过程中,常常需要使用大量的get、set方法,需要写大量的重复代码,尽管...接下来简明扼要的介绍一下@Data注解的功能与使用方法 注解功能 1、@Data可以为类提供读写功能,从而不用写get、set方法。 ...
  • lombok插件之@Data注解

    千次阅读 2020-09-07 14:32:01
    @Data注解为lombok插件中常用的一个注解,此注解在实体类上,自动提供类所有属性的get和set方法。 同时还提供equals,hashCode,toString等方法.使用起来极大的减少了代码量. 1:使用@Data注解的代码 @Data public ...
  • @Data 注解引出的 lombok 注解

    万次阅读 2017-10-31 17:06:13
    这个注解来自于 lombok,lombok 能够减少大量的模板代码,减少了在使用@Data 注解时, 需要导入lombok.Data,下面列举下 lombok提供的注解: val : 和 scala 中 val 同名, 可以在运行时确定类型; @NonNull : 注
  • @Data注解的使用

    千次阅读 2019-05-01 11:34:45
    springboot @data注解的使用 在实体类的编写过程中,常常需要应用大量的get、set方法,需要写大量的重复代码,即有的工具有自动生成功能,当时也会使实体类中产生大量冗余代码,使得代码变,springboot为我们提供了...
  • @Data注解 与 lombok

    2020-11-26 22:45:33
    @Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法; 引入lombok 要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解...
  • @Data注解的用法

    2020-09-10 14:10:51
    @Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法; 引入lombok 要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解...
  • @Data注解与lombok

    2020-09-29 14:39:09
    @Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法; 要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解形式来简化...
  • @Data注解与Lombok

    2020-08-25 16:41:56
    @Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法; 引入lombok 要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解...
  • Sring data JPA为我们提供了很多有用的注解,方便我们来实现各种复杂的功能。本文我们将会从Spring Data Annotations和Spring Data JPA Annotations两部分来讲解。Spring Data AnnotationsSpring Data Annotations是...
  • @Data 注解的使用

    2020-03-02 15:15:15
    @Data 注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、 set()、 toString()等方法; 引入lombok 要使用 @Data 注解要先引入lombok,lombok 是什么,它是一个工具类库,可以用简单的注解...
  • @Data注解的作用

    2020-09-10 19:39:55
    @data注解的作用:代替setter、getter方法,配置好以后就可反复使用
  • spring @Data 注解

    2019-08-23 11:08:19
    spring boot创建 bean 之后 想要 用 @Data 注解 方便生成 get set 方法时 发现 调用类 一直 用不了 bean 属性的 get 或者 set 方法 后来才发现 如果是用maven <dependency> <groupId>org.project...
  • 主要介绍了springboot使用@data注解减少不必要代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • java添加@Data注解

    万次阅读 2019-07-02 10:53:54
    添加@Data注解可以不用书写 getter,setter方法, toString方法 hashCode方法 equals方法 添加步骤: 首先,设置lombok插件, 设置maven依赖,在pom.xml中添加 <dependencies> <dependency> <...
  • 今天遇到@Data注解不生效的问题 @Data注解可以节省get,set等方法 解决方法 在idea中安装插件 安装完成之后重启idea 问题解决
  • lombok @Data注解使用问题 问题描述:IDEA使用lombok @DATA注解在Structure中已经存在get/set方法时,无法调用 原因:pom依赖中没有指定lombok版本 解决:查看maven repository中org.projectlombok:lombok中版本号,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,062
精华内容 2,424
关键字:

data注解