jan*_*lan 3 java spring jpa java-8 spring-data-jpa
当我尝试将自定义 Expenditure 对象映射到 MySQL 中的关系模型时,出现错误:
Initial SessionFactory creation failed.org.hibernate.MappingException: Could not determine type for: javax.money.MonetaryAmount, at table: Expenditure, for columns: [org.hibernate.mapping.Column(monetaryAmount)]
Run Code Online (Sandbox Code Playgroud)
我的支出类别:
@Entity
public class Expenditure implements Comparable<Expenditure> {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String description;
private MonetaryAmount monetaryAmount;
private LocalDate date;
private ExpenditureType type;
@OneToOne
private User client;
...
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下如何进行映射?
您可以使用 jpa'2@Convert注释:
@Convert(converter = MonetaryAmountConverter.class)
private MonetaryAmount monetaryAmount;
Run Code Online (Sandbox Code Playgroud)
然后像这样实现它:
@Converter
public class MonetaryAmountConverter implements AttributeConverter<MonetaryAmount, BigDecimal> {
@Override
public BigDecimal convertToDatabaseColumn(MonetaryAmount attribute) {...}
@Override
public MonetaryAmount convertToEntityAttribute(BigDecimal dbData) {...}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2007 次 |
| 最近记录: |