gwt와 함께 Google 응용 프로그램 엔진을 사용하고 있습니다. 나는 두 개의 클래스 질문과 내가 널 포인터 예외를 제공하는 질문에 대한 쿼리를 통해 액세스 할 때 투표를했습니다. 질문Google 응용 프로그램 엔진에서 쿼리를 실행할 때 널 포인터 예외가 발생합니다.
@PersistenceCapable(identityType=IdentityType.APPLICATION,table="question")
public class Question implements Serializable {
private static final long serialVersionUID = 6355873282541087204L;
@PrimaryKey
@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private String title;
@Persistent(dependent="true")
private Vote vote;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Vote getVote() {
return vote;
}
public void setVote(Vote vote) {
this.vote = vote;
}
}
투표를 다음과 같이
내 클래스는
@PersistenceCapable(identityType=IdentityType.APPLICATION,table="vote")
public class Vote implements Serializable{
private static final long serialVersionUID = -1331159194642997258L;
@PrimaryKey
@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private int like;
@Persistent
private int unlike;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public int getLike() {
return like;
}
public void setLike(int like) {
this.like = like;
}
public int getUnlike() {
return unlike;
}
public void setUnlike(int unlike) {
this.unlike = unlike;
}
}
는
@Override
public List<QuestionDTO> viewAllQuestion() {
PersistenceManager pm = PMF.get().getPersistenceManager();
Query query = pm.newQuery(Question.class);
List<Question> list=null;
try{
list = (List<Question>) query.execute();
}finally{
pm.close();
}
List<QuestionDTO> questionDtoList = new ArrayList<QuestionDTO>();
for(Question question : list){
QuestionDTO questionDTO = new QuestionDTO();
questionDTO.setId(question.getId());
questionDTO.setTitle(question.getTitle());
VoteDTO voteDTO = new VoteDTO();
voteDTO.setId(question.getVote().getId());
voteDTO.setLike(question.getVote().getLike());
voteDTO.setUnlike(question.getVote().getLike());
questionDTO.setVoteDTO(voteDTO);
questionDtoList.add(questionDTO);
}
return questionDtoList;
}
오류가
,364,913 serverImpl 클래스 내 코드입니다된다210
내가 틀렸어? 미리 감사드립니다.
NPE가 * 자신의 코드 *에있는, 어떤 행에서 식별하지 못합니까? – DataNucleus
'question.getVote()'줄에서 널 포인터 예외가 발생했는데 왜 null인지 알 수 없습니다. –
제기 한 다른 질문에서 언급했듯이 객체를 검색 할 때 로그를 쉽게 볼 수 있고 수명주기 상태 등을 볼 수 있습니다. – DataNucleus