标签:upd att 生成 none 依赖 配置 boot int 集成
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
spring:
application:
name: text-service
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
#数据库类型
database: mysql
#日志打印sql,默认false
show-sql: true
hibernate:
ddl-auto: update
其中,spring.jpa.hibernate.ddl-auto 参数用来配置是否开启自动更新数据库表结构,可取create、create-drop、update、validate、none五个值。
create 每次加载hibernate时,先删除已存在的数据库表结构再重新生成;
create-drop 每次加载hibernate时,先删除已存在的数据库表结构再重新生成,并且当 sessionFactory关闭时自动删除生成的数据库表结构;
update 只在第一次加载hibernate时自动生成数据库表结构,以后再次加载hibernate时根据model类自动更新表结构;
validate 每次加载hibernate时,验证数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。
none 关闭自动更新
@Data
@Entity
@Table(name = "jpa_book")
public class JpaBook implements Serializable {
private static final long serialVersionUID = -2717907879164821407L;
@Id
private int id;
private String author;
private String bookPages;
private String bookName;
}
@Data为lomk插件提供,可以自动生成get/set,toString,hasHash,equals方法
@Entity标记该实体类是一个JPA实体类
@Table 表示实体类与数据库表的映射 name = 表名
@Id 主键
@GeneratedValue(strategy = GenerationType.IDENTITY)主键自动增长
@Repository
public interface JpaBookRepository extends JpaRepository<JpaBook,Integer> {
/**
* JPA默认的方法
* @param author
* @return
*/
List<JpaBook> findAllByAuthor(String author);
/**
* nativeQuery=true 原生sql
* @param id
* @return
*/
@Query(value = "select * from jpa_book where id = ?1" , nativeQuery=true)
List<JpaBook> queryBookById(Integer id);
/**
* nativeQuery = false
* @param id
* @return
*/
@Query(value = "select a from JpaBook as a where a.id = ?1")
List<JpaBook> queryBookByIdNoNative(Integer id);
}
JpaRepository<T,E>分别是实体类和主键的类型
1.可以直接通过JPA提供的方法直接拼接
2.使用注解
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.hibernate.jpa.boot.internal.PersistenceUnitInfoDescriptor.getValidationMode
项目启动时报了错误,是JPA相关的
百度得出解决方案,依赖冲突,项目集成了通用mapper,所以排除tk.mapper中的依赖后恢复正常
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
<exclusions>
<exclusion>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
</exclusion>
</exclusions>
</dependency>
标签:upd att 生成 none 依赖 配置 boot int 集成
原文地址:https://www.cnblogs.com/xzh-hash/p/14511541.html