无法确定列的表类型

时间:2016-06-03 15:48:21

标签: java hibernate spring-data setter getter

我有一个班级

@Getter
@Setter
@Entity
public class Product {

    @Id
    @GeneratedValue
    private Long id;

}

// -----------------------------------

@Entity
@Getter
@Setter
public class ProductPrice {

    @Id
    public Long getId() {
        return product.getId();
    }

    @OneToOne
    private Product product;

    @Column(precision = 38, scale = 2)
    private BigDecimal price;

}

我收到了错误

org.hibernate.MappingException: Could not determine type for: com.myapps.model.Product, at table: product_price, for columns: [org.hibernate.mapping.Column(product)]

如您所见,我使用Product类中的id作为ProductPrice类的id。我们可以这样做吗?如果可以,那就太好了。但如果不能,我将使用常规Long类型作为ProductPrice的id。请给我一个建议。感谢

1 个答案:

答案 0 :(得分:1)

我认为您需要声明属性产品的列。

@Entity
@Getter
@Setter
public class ProductPrice {

     @Id
     public Long getId() {
         return product.getId();
     }

     @OneToOne
     @JoinColumn(name="PRODUCT_ID", unique= true, nullable=true, insertable=true, updatable=true)  
     private Product product;

     @Column(precision = 38, scale = 2)
     private BigDecimal price;

}