Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理@AttributeOverrides上的@Type_Java_Hibernate_Jpa - Fatal编程技术网

Java 如何处理@AttributeOverrides上的@Type

Java 如何处理@AttributeOverrides上的@Type,java,hibernate,jpa,Java,Hibernate,Jpa,假设您有一个@embeddeble映射如下: @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 = @

假设您有一个
@embeddeble
映射如下:

@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;
}
你试着这样使用它:

@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:无法确定启动时的类型:my.package.Color


那么,有没有一种方法可以覆盖该类型或确保它使用
@embeddeble
中定义的类型,因为当使用
@AttributeOverride
时,它显然没有被保留?

这看起来是无法做到的,因为它不是
基本的
类型映射。资料来源:。

在这个答案中写一个
属性转换程序解决了我的问题