从 Spring Boot 2.7.2 升级到 Spring Boot 3.0.0-SNAPSHOT:

nhu*_*uvy 4 spring hibernate spring-boot

代码

package com.example.BLModel;

import org.hibernate.annotations.Type;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MapsId;
import javax.persistence.Table;

@Entity
@Table(name = "email_template_custom")
public class EmailTemplateCustom {
    @EmbeddedId
    private EmailTemplateCustomId id;

    @MapsId("tenantId")
    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    @JoinColumn(name = "tenant_id", nullable = false)
    private Tenant tenant;

    @Column(name = "email_subject", nullable = false, length = 1000)
    private String emailSubject;

    @Column(name = "email_content")
    @Type(type = "org.hibernate.type.TextType")
    private String emailContent;

    public EmailTemplateCustomId getId() {
        return id;
    }

    public void setId(EmailTemplateCustomId id) {
        this.id = id;
    }

    public Tenant getTenant() {
        return tenant;
    }

    public void setTenant(Tenant tenant) {
        this.tenant = tenant;
    }

    public String getEmailSubject() {
        return emailSubject;
    }

    public void setEmailSubject(String emailSubject) {
        this.emailSubject = emailSubject;
    }

    public String getEmailContent() {
        return emailContent;
    }

    public void setEmailContent(String emailContent) {
        this.emailContent = emailContent;
    }

}
Run Code Online (Sandbox Code Playgroud)

错误

D:\github\spring_jwt\src\main\java\com\example\BLModel\EmailTemplateCustom.java:29:11
java: cannot find symbol
  symbol:   method type()
  location: @interface org.hibernate.annotations.Type
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 如何修复它?

Chr*_*kov 7

请参阅Hibernate 6.0 的迁移指南,了解您必须在代码中更改哪些内容。在这种特殊情况下,您必须将@Type注释替换为@JdbcTypeCode(SqlTypes.LONGVARCHAR)