休眠自定义类型定义
问题描述:
有人可以请教如何在Hibernate中定义&地图(使用注释)自定义类型吗?休眠自定义类型定义
例如,给出:
@Entity
public class Line {
private Point startPoint;
private Point endPoint;
}
public class Point
{
private double x;
private double y;
}
与其让点持续作为一个对象,我想看看行坚持这样的:
startPointX,startPointY,endPointX,endPointY
什么适当的方法来做到这一点?
问候
马蒂
答
自定义类型可能不处理这一点的最好方式,因为Point
是多值对象。相反,你可以使用@Embeddable
:
@Entity
public class Line {
@Embedded
@AttributeOverrides({
@AttributeOverride(name="x", column = @Column(name="startPointX")),
@AttributeOverride(name="y", column = @Column(name="startPointY"))
})
private Point startPoint;
@Embedded
@AttributeOverrides({
@AttributeOverride(name="x", column = @Column(name="endPointX")),
@AttributeOverride(name="y", column = @Column(name="endPointY"))
})
private Point endPoint;
}
@Embeddable
public class Point
{
private double x;
private double y;
}
它变得非常棘手,当涉及到列映射,因为你需要override them to stop the two points from *ing。