当SpringBoot应用程序启动时,我希望Hibernate自动创建数据库模式,这可以正常工作。
但是我没有看到javax.validation.constraints
对生成的模式有任何影响。
我有以下Gradle构建文件:
plugins {
id("java")
id("war")
id("org.springframework.boot") version "2.7.11"
}
group = "org.example"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
implementation ("org.springframework.boot:spring-boot-starter-data-jpa:2.7.11")
implementation("org.postgresql:postgresql:42.6.0")
implementation("javax.xml.bind:jaxb-api:2.3.0")
implementation("javax.validation:validation-api:2.0.1.Final")
implementation("org.hibernate.validator:hibernate-validator:6.0.1.Final")
}
字符串
下面是Java Entity类:
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "id", nullable = false)
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Size(max = 10)
@NotNull
public String text;
}
型
为什么当我连接到我的数据库时,我看不到任何为Person
中的text
字段指定的约束?
在text
列上不应该有另一个'not null'约束和length
约束吗?
的数据application.properties
:
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL95Dialect
spring.jpa.hibernate.ddl-auto=create
spring.datasource.username=postgres
spring.datasource.password=password
型
1条答案
按热度按时间mfuanj7w1#
要添加约束,您可以始终在@Column注解中定义它们
字符串