Java JPA - 防止使用嵌入式ID类

时间:2018-03-08 14:59:37

标签: java jpa

我有一些持久性的JPA课程

@Entity
@Table(name = "TABLE_NAME")
public MyJPA
{
  @EmbeddedId
  private MyJpaPrimaryKey key;

  @Column(name = "DATABASE_COLUMN")
  private SomeType someData;

  ...
}

主键的类

@Embeddable
public class MyJpaPrimaryKey
{
  ...
}

两者都有包含所有必填字段和/或任何方便的构造函数。

现在,JPA强制使用一些零参数构造函数

  • 映射类型“MyJpa”的Java类必须定义非私有零参数构造函数
  • 嵌入式ID类(即MyJpaPrimaryKey应包含零参数构造函数

这些零参数构造函数都不是为了明确使用。我知道我可以让MyJpa() { }包私有,所以JPA很高兴,没有人会无意中使用它。但MyJpaPrimaryKey() { }必须为public

如何阻止某人使用零参数构造函数MyJpaPrimaryKey()?如果这不可能,如果有人使用它,如何获得警告(或更好的错误)?我可以想到@Deprecated注释,但这感觉就像误用了这个注释。

0 个答案:

没有答案