谢谢大家的回复。不幸的是java.awt.Point类使用Integer,所以在我的情况下它是无用的。解决它的最简单方法是使用Point2D.Doublewhich implements Serializable(但如果您不想更改类定义,则UserType或CompositeUserType的定义更方便)。所以,简单的解决方案:
@Entity
@Table(name = "my_class_table")
public class MyClass {
  private String aliasId;
  private Point2D.Double field;
  public Point2D.Double getField() {
    return field;
  }
  public void setField(Point2D.Double field) {
    this.field = field;
  }
  public String getAliasId() {
    return aliasId;
  }
  public void setAliasId(String aliasId) {
    this.aliasId = aliasId;
  }
}
但我的最终目标是创建一个具有有序点列表的类。如果有人感兴趣,这里有一个代表线的类的例子:
@Entity
public class Line {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "idDb", unique = true, nullable = false)
    private int id;
    @ElementCollection
    @CollectionTable(name="points_table", joinColumns = @JoinColumn(name="idDb"))
    @IndexColumn(name = "idx")
    @Column(name="point_val")
    private List<Point2D.Double> points = new ArrayList<Point2D.Double>();
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public List<Point2D.Double> getPoints() {
        return points;
    }
    public void setPoints(List<Point2D.Double> points) {
        this.points = points;
    }
}