Hibernate5 - 将所有 VARCHAR(255) 更改为 TEXT 而不逐个字段映射?
Hibernate5 - change all VARCHAR(255) to TEXT without mapping field by field?
Hibernate5是否可以将所有String
映射到TEXT
;
没有单独注释或映射每个字段?
更新
我一直在对此进行一些研究并非常接近,但仍然没有明显的解决方案。
线索 #1
来自 https://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/Hibernate_User_Guide.html
link 进入 https://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/Hibernate_User_Guide.html#basic-custom-type,这是另一个兔子洞
使用hibernate,如果字段名称和列相同,您可以忽略每个字段上的注释。
例如:
数据库:USER_NAME
-> 字段名称:user_name;
要将 VARCHAR 类型映射到 String,您可以创建自定义方言。例如,如果您使用 MySQL,您可以创建一个 class 扩展 MySQL 方言并创建映射数据类型。
public class CustomMySQLDialect extends MySQLDialect {
public MySQLDialectDataType() {
registerHibernateType(Types.NVARCHAR, 255, "string");
registerHibernateType(Types.BIGINT, "long");
}
}
Hibernate5是否可以将所有String
映射到TEXT
;
没有单独注释或映射每个字段?
更新
我一直在对此进行一些研究并非常接近,但仍然没有明显的解决方案。
线索 #1
link 进入 https://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/Hibernate_User_Guide.html#basic-custom-type,这是另一个兔子洞
使用hibernate,如果字段名称和列相同,您可以忽略每个字段上的注释。 例如: 数据库:USER_NAME -> 字段名称:user_name;
要将 VARCHAR 类型映射到 String,您可以创建自定义方言。例如,如果您使用 MySQL,您可以创建一个 class 扩展 MySQL 方言并创建映射数据类型。
public class CustomMySQLDialect extends MySQLDialect {
public MySQLDialectDataType() {
registerHibernateType(Types.NVARCHAR, 255, "string");
registerHibernateType(Types.BIGINT, "long");
}
}