在hibernate中映射数据类型

时间:2014-10-03 11:12:26

标签: java hibernate jpa hibernate-mapping

我的情况是数据库列的数据类型为mediumtext。我的实体有以下界面:

@Lob
@Column(name = "data", length = 16777215)
public String getData() {
    return this.data;
}

当我部署到我的服务器时,我收到此错误:

HibernateException: Wrong column type in dme42_apns.appboxdatastore for column data.
Found: mediumtext, expected: longtext

我尝试使用以下代码制作我自己的MySQLDialect,但没有帮助:

@Override
protected void registerVarcharTypes() {
    super.registerVarcharTypes();
    registerColumnType(Types.VARCHAR, 16777215, "mediumtext");
    registerColumnType(Types.VARCHAR, 65535, "text");
}

有没有人知道为什么hibernate映射会这样?

1 个答案:

答案 0 :(得分:1)

您可以向Hibernate提供有关数据类型的提示:

Map<A, List<B>> result = map1.entrySet().stream()
    .filter(entry -> entry.getValue().stream().noneMatch(
            b -> map2.getOrDefault(entry.getKey(), emptyList()).contains(b.c)
    ))
    .collect(toMap(Entry::getKey, Entry::getValue));