我想将具有java.awt.geom.Point2D字段的类放入db。可能吗?

这是我的代码。

@Entity
@Table(name = "my_class_table")
public class MyClass {
  private String aliasId;

  private Point2D field;

  public Point2D getField() {
    return field;
  }

  public void setFieldPoint2D field) {
    this.field = field;
  }

  public String getAliasId() {
    return aliasId;
  }

  public void setAliasId(String aliasId) {
    this.aliasId = aliasId;
  }
}


以及引发异常的原因:

无法确定类型:java.awt.geom.Point2D,在表:my_class_table,对于列:[org.hibernate.mapping.Column(field)]

当然,原因很明显。我的问题是:我应该如何注释该类以能够使用Point2D类的字段?有可能吗?

最佳答案

最简单的方法是使用扩展java.awt.Point且为Point2D类的Serializable。休眠方式将自动使用SerializableType映射它,而您无需执行其他任何操作。 point对象将以其序列化形式保存在blob数据库表列中。

您还可以选择为Point2D类定义自定义的休眠类型。 Here is a link有关如何定义自定义休眠类型的信息。

10-07 13:06