В Hibernate 6 поле, аннотированное @Column @NotNull Private Set IssueTypeLabels, сопоставленное с столбцом Postgres VARCHAR ARRAY, генерируется:
public static volatile SingularAttribute issueTypeLabels;
В Hibernate 7 без добавления @JdbcTypeCode(SqlTypes.ARRAY) генератор создает необработанный тип:
public static volatile SingularAttribute issueTypeLabels;
Шаги для воспроизведения: поле сущности с @JdbcTypeCode(SqlTypes.ARRAY) и типом Set.
Ожидается: SingularAttribute
Фактическое: SingularAttribute (необработанный тип)
Пример:
@MappedSuperclass
public abstract class BaseEntity implements Serializable {
@Id
private UUID id = UUID.randomUUID();
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
}
@Entity
public class TestEntity extends BaseEntity {
@Column
@JdbcTypeCode(SqlTypes.ARRAY)
private Set tags = new HashSet();
@Column
private String name;
public Set getTags() {
return tags;
}
public void setTags(Set tags) {
this.tags = tags;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
/**
* Static metamodel for {@link com.example.hibernateissue.TestEntity}
**/
@StaticMetamodel(TestEntity.class)
@Generated("org.hibernate.processor.HibernateProcessor")
public abstract class TestEntity_ extends BaseEntity_ {
/**
* @see #tags
**/
public static final String TAGS = "tags";
/**
* @see #name
**/
public static final String NAME = "name";
/**
* Static metamodel type for {@link com.example.hibernateissue.TestEntity}
**/
public static volatile EntityType class_;
/**
* Static metamodel for attribute {@link com.example.hibernateissue.TestEntity#tags}
**/
public static volatile SingularAttribute tags;
/**
* Static metamodel for attribute {@link com.example.hibernateissue.TestEntity#name}
**/
public static volatile SingularAttribute name;
}
plugins {
java
id("org.springframework.boot") version "4.0.6"
id("io.spring.dependency-management") version "1.1.7"
}
group = "com.example"
version = "0.0.1-SNAPSHOT"
description = "hibernate-issue"
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
runtimeOnly("org.postgresql:postgresql")
annotationProcessor("org.hibernate.orm:hibernate-processor")
testImplementation("org.springframework.boot:spring-boot-starter-data-jpa-test")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
tasks.withType {
useJUnitPlatform()
}
Генератор метамодели теряет параметр универсального типа для Set в Hibernate 7 ⇐ JAVA
Программисты JAVA общаются здесь
1777468423
Anonymous
В Hibernate 6 поле, аннотированное @Column @NotNull Private Set IssueTypeLabels, сопоставленное с столбцом Postgres VARCHAR ARRAY, генерируется:
public static volatile SingularAttribute issueTypeLabels;
В Hibernate 7 без добавления @JdbcTypeCode(SqlTypes.ARRAY) генератор создает необработанный тип:
public static volatile SingularAttribute issueTypeLabels;
[b]Шаги для воспроизведения:[/b] поле сущности с @JdbcTypeCode(SqlTypes.ARRAY) и типом Set.
[b]Ожидается:[/b] SingularAttribute
[b]Фактическое:[/b] SingularAttribute (необработанный тип)
Пример:
@MappedSuperclass
public abstract class BaseEntity implements Serializable {
@Id
private UUID id = UUID.randomUUID();
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
}
@Entity
public class TestEntity extends BaseEntity {
@Column
@JdbcTypeCode(SqlTypes.ARRAY)
private Set tags = new HashSet();
@Column
private String name;
public Set getTags() {
return tags;
}
public void setTags(Set tags) {
this.tags = tags;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
/**
* Static metamodel for {@link com.example.hibernateissue.TestEntity}
**/
@StaticMetamodel(TestEntity.class)
@Generated("org.hibernate.processor.HibernateProcessor")
public abstract class TestEntity_ extends BaseEntity_ {
/**
* @see #tags
**/
public static final String TAGS = "tags";
/**
* @see #name
**/
public static final String NAME = "name";
/**
* Static metamodel type for {@link com.example.hibernateissue.TestEntity}
**/
public static volatile EntityType class_;
/**
* Static metamodel for attribute {@link com.example.hibernateissue.TestEntity#tags}
**/
public static volatile SingularAttribute tags;
/**
* Static metamodel for attribute {@link com.example.hibernateissue.TestEntity#name}
**/
public static volatile SingularAttribute name;
}
plugins {
java
id("org.springframework.boot") version "4.0.6"
id("io.spring.dependency-management") version "1.1.7"
}
group = "com.example"
version = "0.0.1-SNAPSHOT"
description = "hibernate-issue"
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
runtimeOnly("org.postgresql:postgresql")
annotationProcessor("org.hibernate.orm:hibernate-processor")
testImplementation("org.springframework.boot:spring-boot-starter-data-jpa-test")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
tasks.withType {
useJUnitPlatform()
}
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия