我想定義命名查詢serveral的一樣:不可重複@NamedQuery
@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
}
但這樣做,我得到了日食以下錯誤信息:
Duplicate annotation of non-repeatable type @NamedQuery. Only annotation types marked @Repeatable can be used multiple times at one target.
,並在編譯:
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)
對我來說,這種限制只有一個命名查詢每類沒有太大意義。這是一個錯誤還是一個功能?有沒有解決方法可以爲每個類定義更多的命名查詢?
感謝。效果很好! – BerndGit