基于不同数据库的Spring,Hibernate类型映射

时间:2019-07-02 10:51:00

标签: java spring hibernate-mapping

在实体类中定义休眠类型映射时,我有类似的东西:

@Entity
@Table(name = "TEST_TABLE")
public class Test {

     @Type( type = "jsonb" )
     @Column(name = "CONTENT_FILES")
     private List<ContentFile> contentFiles;

}

将实体字段映射到自定义的休眠类型jsonb,以支持PostgreSQL DB。

我想将映射更改为另一个支持MSSQL DB的休眠自定义类型json。

我可以在同一个实体类中支持两个映射吗?

我尝试使用@Profile批注,但不起作用。

@Profile("pgsql")
@Type( type = "jsonb" )
@Profile("mssql")
@Type( type = "json" )
@Column(name = "CONTENT_FILES")
private List<ContentFile> contentFiles;

1 个答案:

答案 0 :(得分:2)

json和jsonb两种数据类型根据PostgreSQL文档几乎相同,因此您不必维护两种不同的数据类型即可将json保留在MSSQL和PostgreSQL中。 请参考以下链接 PostgreSQL documentation.