【问题标题】:Understanding hibernate @Type annotation了解休眠@Type 注解
【发布时间】:2015-03-18 09:25:47
【问题描述】:

来自official hibernate documentation

@org.hibernate.annotations.Type 覆盖默认休眠类型 used:这通常不是必需的,因为类型是正确的 由 Hibernate 推断

文档中有一个例子:

@Type(type="org.hibernate.test.annotations.entity.MonetaryAmountUserType")
@Columns(columns = {
    @Column(name="r_amount"),
    @Column(name="r_currency")
})
public MonetaryAmount getAmount() {
    return amount;
}

我不明白。我们声明了@Type(type="org.hibernate.test.annotations.entity.MonetaryAmountUserType"),但方法的返回值类型为MonetaryAmount

我希望在类型注解中声明的类型和返回值的类型应该是相同的类型。

无法解释在@Type 注释中声明的类型的实际用途。为什么和返回的类型不一样?

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    返回类型和@Type有区别。

    @Type 注释用于休眠,即告诉您要在数据库中存储哪种类型的数据。

    我们举个简单的例子:

    @Type(type="yes_no")
    private boolean isActive; 
    

    这里的返回类型是boolean,但存储在数据库中的值将是YN格式,而不是true/false

    以同样的方式,您可以将您的对象映射到数据库列。查看here了解更详细的说明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-02
      • 2013-09-29
      • 1970-01-01
      • 2019-09-27
      • 2011-03-14
      • 2015-11-06
      • 1970-01-01
      相关资源
      最近更新 更多