BHa*_*man 3 java spring hibernate spring-data-jpa spring-boot
我有一个 spring boot 应用程序,它AttributeConverter为一个实体指定一个,该实体将枚举从大写转换为标题大小写以存储在数据库中。
我有以下实体:
@Entity
@Table(name = "customerleads")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class CustomerLead implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Enumerated(EnumType.STRING)
@Column(name = "type")
@Convert(converter = CustomerLeadTypeConverter.class)
private CustomerLeadType type = CustomerLeadType.OPEN;
}
Run Code Online (Sandbox Code Playgroud)
以及以下 AttributeConverter 类:
@Converter(autoApply = true)
public class CustomerLeadTypeConverter implements AttributeConverter<CustomerLeadType, String> {
@Override
public String convertToDatabaseColumn(CustomerLeadType attribute) {
switch (attribute) {
case OPEN:
return "Open";
case CLOSED:
return "Closed";
case DELETED:
return "Deleted";
default:
throw new IllegalArgumentException("Unknown" + attribute);
}
}
@Override
public CustomerLeadType convertToEntityAttribute(String dbData) {
switch (dbData) {
case "Open":
return OPEN;
case "Closed":
return CLOSED;
case "Deleted":
return DELETED;
default:
throw new IllegalArgumentException("Unknown" + dbData);
}
}
}
Run Code Online (Sandbox Code Playgroud)
似乎也@Converter(autoApply = true)没有@Convert(converter = CustomerLeadTypeConverter.class)触发转换。
Ali*_*ani 12
删除@Enumerated(EnumType.STRING):
// @Enumerated(EnumType.STRING)
@Column(name = "type")
@Convert(converter = CustomerLeadTypeConverter.class)
private CustomerLeadType type = CustomerLeadType.OPEN;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4961 次 |
| 最近记录: |