spring data 生成表结构时修改字段类型

2017n8月28(周一)

知识点1:spring data 生成表结构时修改字段类型。
Spring Data的表结构自动生成, 此自动生成机制十分保守, 多数情况下, 对数据库的更改无能为力。

(1)数据库(sql server)中修改数据类型时配置:

工具/设计/设计器/表设计器和数据库设计器/表选项/【去掉勾选】阻止保存要求重新创建表的更改

(2)若必须要求在第一次生成中产生正确的表结构:

那就需要提前定好数据类型:

自动生成varchar(255)转为varchar(50):

@Field(type = FieldType.shortVarchar)
@Column(columnDefinition = "varchar(50)")
private String 名称;

或者这样

自动生成bit类型 转为char(1):

@Field(type = FieldType.bool)
@Convert(converter = BooleanToYNCharConverter.class)
private Boolean 启用;

这种写法的缺点是:移植性不好,不兼容各个数据库。


七夕,加班。

sea

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 中使用 JPA 配置自动维护结构,需要进行以下步骤: 1. 在 `application.properties` 文件中配置数据源信息: ``` spring.datasource.url=jdbc:mysql://localhost:3306/testdb spring.datasource.username=root spring.datasource.password=123456 ``` 2. 在 `pom.xml` 文件中添加 JPA 和 MySQL 驱动的依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> ``` 3. 创建实体类,并使用注解描述实体类和字段的属性: ```java @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "username") private String username; @Column(name = "password") private String password; // 省略 getter 和 setter 方法 } ``` 4. 创建 JPA Repository 接口,并继承 `JpaRepository` 接口: ```java public interface UserRepository extends JpaRepository<User, Long> { } ``` 5. 在 `application.properties` 文件中添加 JPA 相关的配置: ``` # 自动建 spring.jpa.hibernate.ddl-auto=create # 显示 SQL 语句 spring.jpa.show-sql=true # 数据库方言 spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect ``` 6. 启动应用程序,JPA 会自动根据实体类和配置文件的信息生成数据库结构。如果需要更新结构,可以将 `spring.jpa.hibernate.ddl-auto` 的值改为 `update`。 以上就是使用 Spring Boot 和 JPA 配置自动维护结构的步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值