私のようなserveralの名前付きクエリを定義します:非反復@NamedQuery
Duplicate annotation of non-repeatable type @NamedQuery. Only annotation types marked @Repeatable can be used multiple times at one target.
とコンパイル時:
@Entity
@Table(name = "TableA")
@NamedQuery(query = "SELECT i FROM TableA i WHERE i.Id = :Id", name = "findAById")
@NamedQuery(query = "SELECT i FROM TableA i WHERE i.name = :name", name = "findAByName")
public class TableA
{
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
@Column(name="Name")
String name = "";
\\... more code
}
しかし、そうすることが、私は日食で、次のエラーメッセージが表示されます。
java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.persistence.NamedQuery: @javax.persistence.NamedQuery(lockMode=NONE, hints=[], query=SELECT i FROM TableA i WHERE i.name = :name, name=findAByName) at sun.reflect.annotation.AnnotationParser.parseAnnotations2(Unknown Source)
私にとっては、1つのクラスにつき1つの名前付きクエリのみのこの制限はあまり意味がありません。これはバグか機能ですか?クラスあたりより多くの名前付きクエリを定義するための回避策がありますか?
感謝を。うまくいきます! – BerndGit