У меня есть сущность, определенная так ...
@Entity
data class MyAuthEntity(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long? = null,
@Column(nullable = false, length = 500)
@Size(max = 500)
var token: String = "",
@Column(nullable = false, length = 250)
@Size(max = 250)
var name: String = "",
...
)
По какой-то причине создается таблица mysql, определенная так ...
CREATE TABLE `my_auth_entity` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`token` longtext NOT NULL,
`name` varchar(250) NOT NULL,
...
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
" longtext "кажется крайне неподходящим типом столбца всего для 500 символов. Есть ли веская причина, по которой он это сделал. Конечно, даже использование «текста» имело бы больше смысла.
Как правильно заставить его использовать вместо этого varchar? Я знаю, что могу определить это так ...
@Column(nullable = false, length = 500, columnDefinition = "VARCHAR(500)")
Не похоже, что я должен быть именно такой c реализации.