3

假设您有这样的@Embeddable映射:

@Embeddable
public class Wheel {
  @Column(name = "COLOR")
  @Type(type = "my.package.ColorUserType")
  private Color theColor;
}

你尝试像这样使用它:

@Entity
@Table(name = "CAR")
public class Car {
  @Embedded
  @AttributeOverride(
    column = @Column(name = "STEERING_WHEEL_COLOR")
    name = "theColor"
  )
  private Wheel steeringWheel;
}

当我这样做时,我会org.hibernate.MappingException: Could not determine type for: my.package.Color在启动时获得巨大的脂肪。

那么有没有办法覆盖类型或确保它使用定义的类型,@Embeddable因为在使用时它显然没有被保留@AttributeOverride

4

2 回答 2

0

看起来这无法完成,因为它不是Basic类型映射。来源:Java 6 API - AttributeOverride

于 2013-01-16T21:31:18.393 回答
0

AttributeConverter在这个答案中写一个https://stackoverflow.com/a/35758475/572380解决了我的问题。

于 2019-01-21T21:25:23.570 回答