【发布时间】:2010-12-18 22:49:23
【问题描述】:
好的,这个问题最好用代码来解释。所以我会尽量给出最简洁的例子。
Timestamped.java
@Embeddable
public class Timestamped<E> {
private E value;
private Date timestamp;
...
}
Foo.java
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="TYPE")
public class Foo {
@Embedded
@AttributeOverides({
@AttributeOverride(name="timestamp", column=@Column("VALUE_TS")),
@AttributeOverride(name="value", column=@Column("VALUE"))
})
private TimestampedValue<E> value;
...
}
Bar.java
@Entity
@DiscriminatorValue("BAR")
public class Bar extends Foo<Double> { }
我需要 Bar 为 value.value 使用适当的类型转换器,并为 Foo 的每个子类使用不同的转换器。理想情况下,我只想扩充此代码,但我可以将 Foo 抽象化并将 value 字段移动到每个带有附加注释的子类。
【问题讨论】:
标签: java hibernate generics components