2013-10-15 7 views
-1

У меня есть этот кусок кода в моем классе сущностей Java:ошибка Аннотации в Java

import java.io.Serializable; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Table; 
import javax.persistence.NamedQueries; 
import javax.persistence.NamedQuery; 

@Entity 
@Table 
@NamedQueries(@NamedQuery(name="Student.getAll", query="SELECT e FROM Student e")); 
public class Student implements Serializable{ 
    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    @Column 
    private int studentId; 
    @Column 
    private String firstname; 
    @Column 
    private String lastname; 
    @Column 
    private int yearLevel; 

    public int getStudentId() { 
     return studentId; 
    } 

И больше методы с тех пор. Ошибка im get после аннотации @Entity. В нем говорится, что ожидается класс, интерфейс или перечисление. Это странно, потому что я смотрю учебник, и там нет ошибок. Что с этим не так?

ответ

2

Вы не импортируете javax.persistence.NamedQuery и javax.persistence.NamedQueries, и у вас есть посторонние точки с запятой в конце ваших аннотаций.

Кроме того, если у вас есть только один запрос, вы можете поставить @NamedQuery непосредственно на класс сущности, а не на его упаковку.

+0

Я сделал это, но ошибка все еще сохраняется. Я редактировал вопрос, включая импорт. –

+0

@ JeanCarlosSuárezMarranzini Только что заметил другую ошибку и обновил мой ответ. – chrylis

+0

Даже при удалении '@ NamedQueries' все еще есть ошибка. Но я думаю, что точка с запятой сделала трюк. –

Смежные вопросы