Je modifie le code hérité et je continue à obtenir une erreur bizarre "Impossible de trouver le symbole" qui me jette. Peer de voiture: P> package fr.dao;
import fr.model.accounting.Cost;
import fr.model.company.Car;
public class CompanyDAO extends GenericDAO<Company> {
private enum ChildType {
COST{
public void addChildToCompany(Company company, Object child) {
company.addCost((Cost)child);
}
},
CAR{
public void addChildToCompany(Company company, Object child) {
company.addCar((Car)child);
}
};
public abstract void addChildToCompany(Company company, Object child);
}
private void addChildToCompany(Long idCompany, Object child, ChildType type) throws NotFoundDAOException, AlreadyExistDAOException, Exception {
try {
// Begin unit of work
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Company company = (Company) session.load(Company.class, idCompany);
type.addChildToCompany(company, child);
session.flush();
// End unit of work
session.getTransaction().commit();
} catch (ObjectNotFoundException ex) {
HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback();
throw new NotFoundDAOException("Identified object " + idCompany
+ " doesn't exist in database", ex);
} catch (ConstraintViolationException ex) {
HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback();
throw new AlreadyExistDAOException("The new identity already exsits in database", ex);
} catch (Exception ex) {
ex.printStackTrace();
HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback();
throw new Exception(ex);
}
}
public CompanyDAO() {
super(Company.class);
}
public void addCarToCompany(Long idCompany, Car car) throws NotFoundDAOException, AlreadyExistDAOException, Exception {
addChildToCompany(idCompany, car, ChildType.CAR);
}
}
6 Réponses :
Très probablement Vous utilisez un fichier de classe précédemment compilé (qui n'avait pas la méthode) de votre path et que le système tente d'utiliser cela au lieu de votre code source actuel. p>
Sinon, nettoyez votre espace de travail, ne dépendez pas des compilations existantes et réessayez. Cela m'est arrivé dans le passé. P>
Je vais essayer de nettoyer l'espace de travail et vous avez peut-être raison. Mais j'ai codé cette classe moi-même de la terre. L'ensemble du paquet (et WebApp est un clone)
Nope sauf s'il y a un moyen de nettoyer l'espace de travail aussi, je ne peux pas voir où dans les propriétés du projet pour supprimer les dépendances
Nan. Je n'ai rien semble pouvoir se débarrasser de cette erreur. Peut essayer Eclipse à la place et voir si je peux utiliser ses outils de construction
Nettoyez et construisez votre projet. Si cela ne fonctionne pas, puis redémarrez Netbeans. Parfois, NetBeans donne des erreurs étranges et un redémarrage complet de NetBeans et / ou de l'ordinateur semble fixer ces problèmes inexplicables. p>
CompanyDao est compilé et disponible sur la classe de classe avant la cachette? P>
@ DarkStar1 Jetez un coup d'œil à l'ordre de votre chemin de construction ou de votre chemin source ou tout ce que les NetBeans l'appelle.
Je devais ouvrir le projet dans Eclipse et utiliser l'outil de construction pour résoudre le problème. Il a complètement compilé tout.
Je continue à avoir le même problème (bien que je ne sache pas si c'est pour la même raison). Pour moi, la seule chose qui fonctionne (en dehors de la fossé de cette "IDE" robuste ") consiste à supprimer le cache. Sous Windows, il est situé dans % userprofile% \. NetBeans \ 7.0 \ var \ cache code>. Je suppose que sur * Nix, il pourrait être sous
~ / .netbeans / 7.0 / var / cache code>. Vous devez d'abord quitter Netbeans, supprimer le cache, puis commencer Netbeans à nouveau. P>
Dans NetBeans 8.0.2, le cache n'apparaît pas au même endroit. J'ai trouvé un cache en% UserProfile% \ appdata \ local \ netbeans \ cache peut-être c'est le même.
Lorsque vous utilisez NetBeans 7.2+, procédez comme suit: P>
Voir aussi Comment effacer le cache dans NetBeans p>
fonctionne toujours @ Netbeans 12.2. P>
Lorsque NetBeans est installé avec Snap, le répertoire à supprimer / nettoyer est le suivant: ~ / snap / Netbeans / Common / Cache Code> P> P>
Cela pourrait être le problème car l'instance de NetBeans actuelle que vous exécutez utilise le cache de construction précédemment lors de son initialisation. Ainsi, afin d'effacer le cache NetBeans, vous pouvez effectuer l'une de ces deux étapes mentionnées ci-dessous.
Approche 1 Strong>
de
1. Cliquez avec le bouton droit de la souris sur votre nom de projet dans Netbeans dans l'onglet Projets.
de
2. Cliquez sur l'option
3. Le cache a été effacé.
Approche 2 Strong>
de
1. Cliquez sur "Touche Windows + R" et tapez "% UserProfile% / AppData / local / Netbeans".
de
2. Naviguez jusqu'au dossier de cache, puis sur le dossier avec le nom spécifiant la version NetBeans.
de
3. Fermez les NetBeans et supprimez tous les fichiers présents dans le dossier.
de
4. Redémarrez les NetBeans et vous pourrez désormais voir le nom de la classe.
de
de
Si l'une de ces méthodes ne fonctionnait pas, il serait peut-être que votre point de classe n'est pas correct. P>
J'ai essayé de nettoyer le projet / effectuer une reconstruction complète?
Avez-vous essayé une construction propre? Avez-vous un bocal ou un autre dossier dans CLASSPATH qui pourrait également avoir une copie des cours de sociétéDao?