STSで開発している際にこのようなエラーが出て生成されたコード自体が文法エラーになってしまってそこからどうしようもなくなる。
Syntax error, insert "enum Identifier" to complete EnumHeader HogeDaoImpl.java /helloworld/.apt_generated/net/unko/hoge/dao line 4 Java Problem Syntax error, insert "EnumBody" to complete EnumDeclaration HogeDaoImpl.java /helloworld/.apt_generated/net/unko/hoge/dao line 4 Java Problem
この原因はコードの自動生成が失敗しているからである。 実際このエラーの原因になっている自動生成されたコードを見ると
アノテーションの表記だけあって
@org.springframework.stereotype.Repository
肝心な実装部分が無い。
これは自動生成に失敗して、コードが途中で切れてしまっているということである。 そのせいでその中途半端な Java コードが文法エラーで検出されることになっているということ。
この APT(Annotation Processor) がうまく動かない理由は、STS や Eclise を駆動している Java と Doma が必要としている Java のバージョンがズレているからである。
自分の場合は Java 1.8 に統一することでちゃんと生成されるようになった。