次の JPA 列定義は、すべてのデータベース (h2、mysql、postgres など) でデフォルトで「整数」データ型を生成します。
@Column(name = "type", nullable = false)
@Type(type = "com.mycompany.hibernate.usertype.GenericEnumUserType", parameters = {
@Parameter(name = "enumClass", value = "com.mycompany.model.DegreeType"),
@Parameter(name = "identifierMethod", value = "toInt"),
@Parameter(name = "valueOfMethod", value = "fromInt") })
@NotNull
private DegreeType type;
このフィールドには最小限のストレージを使用したいので、schema2ddl の生成には columnDefinition パラメーターを使用したいと考えています。しかし、tinyint は postgres ではサポートされていないようですが、上記の他のデータベースではサポートされています。
データベースの種類に基づいて異なる SQL ファイルを生成することは可能でしょうか。1.これを達成するための最良のアプローチは何ですか? 2. この目的に使用できる (最小限のストレージで) 最適なデータ型は何ですか? それはsmallintでしょうか