Генератор метамодели теряет параметр универсального типа для Set в Hibernate 7JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Генератор метамодели теряет параметр универсального типа для Set в Hibernate 7

Сообщение 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;

Шаги для воспроизведения: поле сущности с @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()
}
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»