2016-12-13 3 views
0

[entrez image description ici] [1] ceci est mon code où j'ai java.ioNotSerializabale Exception quand je cours ci-dessous requête j'ai eu ce exceptionprintemps jdbctemplate.query méthode me donne cette exception invalide argument java.io Non sérialisable exception

java.io.NotSerializableException

ma classe POJO est ici ProjectHelper public class implémente Serializable {

private String name; 
private String description; 
private String company; 
private String category; 
private List<UserRegister> usersRegisterList; 

private String startDate; 

Et voici ma méthode DaoImpl où je suis arrivé erreur « java.io.NotSerializableException »

@Override 
public GenericModal getProjects(User email) throws SQLException { 

    String sql = "select p.project_name, p.project_description, p.company,      p.start_date, p.end_date, " + 
      "p.category f.task, f.milestones, f.billing, f.time_log, f.messages, f.features_id, f.files, u.firstName" + 
      "u.lastname, u.email" + 
      " from project as p" + 
      "join userprojectrelation as upr" + 
      "on p.project_id=upr.project_id " + 
      "join users as u" + 
      "on u.UserId=upr.user_id" + 
      "join features as f " + 
      "on f.project_id=p.project_id" + 
      "where u.email=?"; 
    int status = 0; 
    GenericModal genericModal=new GenericModal(); 

    try { 
     List<ProjectHelper> projectHelper=jdbcTemplate.query(sql,new Object[]{email},new ProjectHelperMapper()); 
     if (projectHelper.isEmpty()) { 
      return null; 
     } else { 
      genericModal.setObject(projectHelper); 
     } 
     // return genericModal; 
    } catch (Exception ex) { 
     genericModal.setException(ex.getMessage()); 
    } 

    return genericModal; 
} 
+0

Veuillez utiliser l'espacement standard Java pour la lisibilité. Cela rend plus facile pour nous, les gars et les galles qui veulent vous aider, pour vous aider réellement. – Flummox

+0

@Flummox plz essayer de résoudre la question plutôt que de critiquer j'ai déjà utilisé des espaces –

Répondre

0

Il est probablement UserRegister non sérialisable. Si vous souhaitez sérialiser une classe, tous ses composants (champs) doivent également être sérialisables, sauf si vous implémentez des méthodes de sérialisation personnalisées ou marquez les champs comme transitoires.

+0

J'ai déjà fait la classe ProjectHelper serilizable qui couvre tous les pojos –

+0

Aussi, je suppose. De même, l'interface List n'est pas sérialisable, mais de nombreuses implémentations le sont, mais ce n'est pas un problème car la sérialisation est uniquement vérifiée lors de l'exécution. –

+1

@UdaibKhan il ne suffit pas de rendre ProjectHelper Serializable, tous les types auxquels il fait référence (qui ne sont pas transitoires) doivent aussi être sérialisables. –