背景

Entityクラスの中でlambda式を使用していました。

例えばこんな風に。
**

  myCollection.stream().forEach(i -> i.setDate(now));

そうすると、そのEntityクラスは読み込まれず、リレーションシップなどで使用していると、次のようなエラーが出ます。


[class com.example.Hoge] uses a non-entity [class com.example.fuga] as target entity in the relationship attribute [field hoge]

環境

  • Glassfish 4
  • Java 8

原因

Eclipselinkのバグでしたー。 :sob: :sob: :sob:

Bug 429992 - EclipseLink silently ignores Entity classes with lambda expressions

回避策

lambda式を使うのをやめましょー。 :sweat: