jpa获取数据库当前时间_SpringDataJPA存储数据时通过注解自动设置创建时间和修改时间...

如果我们此时是通过 Spring Data JPA进行数据库的操作,Spring Data JAP提供了Auditing特性,我们可以通过起很好的实现我们的需求。

其原因基本时通过插入监听器,当我们对被特定注解的数据bean进行操作时,其在中间自动进行一系列的操作,想到个词,补刀~~

我们看下官方的说明:

Spring Data provides sophisticated support to transparently keep track of who created or changed an entity and the point in time this happened. To benefit from that functionality you have to equip your entity classes with auditing metadata that can be defined either using annotations or by implementing an interface.

大意如下:Spring Data 提供了复杂的支持来用透明的,无感知的方式去跟踪实体是被谁创建的以及发生此时间的时间点。

基于注解的auditing元数据

@CreatedBy,

@LastModifiedBy :捕获实体是被谁创建的或者修改

@CreatedDate :捕获创建的时间

@LastModifiedDate :捕获修改的时间

使用时,我们的数据bean需要添加@EntityListeners(AuditingEntityListener.class)

注解,一边增加auditing的能力,当然,我们的配置应用类还要添加@EnableJpaAuditing

注解去开启auditing特性。

例如:

@Entity

@EntityListeners(AuditingEntityListener.class)

class Customer {

@CreatedBy

private User user;

@CreatedDate

private DateTime createdDate;

// … further properties omitted

}

@SpringBootApplication

@EnableJpaAuditing

public class AircraftApplication {

public static void main(String[] args) {

SpringApplication.run(AircraftApplication.class, args);

}

@Bean

public CommandLineRunner commandLineRunner(ApplicationContext ctx) {

return args -> {

System.out.println("Let's inspect the beans provided by Spring Boot:");

String[] beanNames = ctx.getBeanDefinitionNames();

Arrays.sort(beanNames);

for (String beanName : beanNames) {

System.out.println(beanName);

}

};

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较大的项目,需要一定的时间和精力,我会尽力帮助您完成。首先,我们需要确定数据库的设计和实体类的定义。 假设我们要设计一个简单的图书管理系统,包括以下几个实体类:图书、作者、出版社和分类。每一本图书都有一个作者、一个出版社和一个分类,这些信息都需要存储数据库中。 下面是每个实体类的属性和注解定义: ``` @Entity public class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private String ISBN; @ManyToOne @JoinColumn(name = "author_id") private Author author; @ManyToOne @JoinColumn(name = "publisher_id") private Publisher publisher; @ManyToOne @JoinColumn(name = "category_id") private Category category; // getters and setters } @Entity public class Author { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "author") private List<Book> books; // getters and setters } @Entity public class Publisher { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "publisher") private List<Book> books; // getters and setters } @Entity public class Category { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "category") private List<Book> books; // getters and setters } ``` 上面的代码中,我们使用了`@Entity`注解来标识实体类,`@Id`注解和`@GeneratedValue`注解来标识主键和自动生成策略,`@ManyToOne`注解和`@JoinColumn`注解来建立实体类之间的关联关系,`@OneToMany`注解和`mappedBy`属性来标识反向关联关系。另外,每个实体类都有一个默认的构造方法和一个带有所有属性的构造方法,以及相应的getter和setter方法。 接下来,我们需要定义自定义Repository接口,这里我们使用Spring data JPA提供的`JpaRepository`接口作为基础接口,然后定义自己的查询方法。 ``` public interface BookRepository extends JpaRepository<Book, Long> { List<Book> findByTitleContaining(String keyword); List<Book> findByAuthorName(String authorName); List<Book> findByPublisherName(String publisherName); List<Book> findByCategoryName(String categoryName); } ``` 上面的代码中,我们定义了几个简单的查询方法,以便使用关键字、作者、出版社和分类来查询图书。 最后,我们需要在Spring Boot的配置文件中配置数据源和JPA相关的配置,如下所示: ``` spring.datasource.url=jdbc:mysql://localhost:3306/library spring.datasource.username=root spring.datasource.password= spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=create spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect ``` 上面的配置文件中,我们指定了MySQL数据库的连接信息,以及JPA的一些配置参数,如是否显示SQL语句、是否自动生成表结构等。 最后,我们可以在代码中使用`BookRepository`接口来操作数据库,如下所示: ``` @Autowired private BookRepository bookRepository; public List<Book> search(String keyword) { return bookRepository.findByTitleContaining(keyword); } ``` 上面的代码中,我们使用`findByTitleContaining`方法来查询包含关键字的图书。 这就是一个简单的使用Spring data JPA数据库项目的设计和实现过程。当然,这只是一个基础的示例,实际应用中还需要更复杂的查询和业务逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值