Eu tenho um modelo de categoria Hibernate:
@Entity
@Table(name = "category")
public class Category {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id")
private long id;
@Column(name = "type")
private String type;
que têm um campo de tipo de string. Também tenho um enum Java que representa um tipo de categoria:
public enum CategoryType {
INCOME, OUTCOME;
}
que eu gostaria de usar em vez do tipo string. O SQL aceita dois valores distintos no parâmetro varchar: CategoryIncome
ou CategoryOutcome
. Eu gostaria que a classe do modelo Category aceitasse uma variável enum - e mapeie-a de alguma forma para a string sempre que o hibernate solicitar.
É possível?
@Converter(autoApply = true) public class CategoryTypeConverter implements javax.persistence.AttributeConverter <CategoryType, String>
@Enumerated(EnumType.STRING) public CategoryType getCategoryType() { return this.categoryType; }
.hibernate.ddl-auto=update
modo e tive que largar minha tabela e deixar o hibernate criá-la novamente para converter meu enum de int para varchar. Espero que ajude alguém com problema semelhante.