Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1131 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  J2EE EJB3 JBOSS Ejb entity

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

J2EE EJB3 JBOSS Ejb entity

n°1637254
guiguivts
Posté le 05-11-2007 à 23:12:05  profilanswer
 

Salut j'ai une ptite question par rapport à la persistance en ejb3  
 
Alors j'aimerai persister différents objets. J'ai suivi un très bon tuto sur eclipse totale qui me permet de persister des objets de type produis définis de cette façon :  
 

Code :
  1. package fr.unantes.metier;
  2. import java.io.Serializable;
  3. import javax.persistence.Entity;
  4. import javax.persistence.Id;
  5. @Entity
  6. public class Produit implements Serializable {
  7.    @Id
  8.    private String id;
  9.    private String libelle;
  10.    private int quantiteEnStock;
  11. ...


 
Donc je suis parti de ce principe pour faire persister d'autre objet par exemple :  
 

Code :
  1. package fr.unantes.metier;
  2. import java.io.Serializable;
  3. import javax.persistence.Entity;
  4. import javax.persistence.Id;
  5. @Entity
  6. public class Document implements Serializable {
  7. @Id
  8. private int id;
  9. private FacadeM myFacadeM;
  10. private Membre transmet;


 
Avouez que y'a pas grand chose qui change ?  
 
Et bien il me trouve cette erreur lors du déploiement du serveur jboss :  
 
javax.persistence.PersistenceException: org.hibernate.MappingException: Could not determine type for: fr.unantes.metier.FacadeM, for columns: org.hibernate.mapping.Column(myFacadeM)]
 
Est ce que quelqu'un sait pourquoi ?  
 
Mes jars sont bien inclus j'ai aucune erreur dans mon projet, juste celle là lors du déploiement  :kaola:  
 
Merci ;)


---------------
http://plainedemazerolles.free.fr
mood
Publicité
Posté le 05-11-2007 à 23:12:05  profilanswer
 

n°1637261
guiguivts
Posté le 05-11-2007 à 23:30:58  profilanswer
 

Bon et bien aussitot poster aussitot trouvé la réponse ! (et pourtant ça faisait des heures que je cherchais)
 
Donc si ça peut aider, il faut rajouter implement Serializable dans FacadeM et Membre dans mon cas.
 
Par contre je veux bien qu'on m'explique pourquoi ???
 
Et tant que j'y suis pour rester dans le même sujet. Pour faire persister mes objet je me sert de :  
 

Code :
  1. @PersistenceContext
  2. EntityManager em;
  3. public void ajouter(Produit produit) {
  4. em.persist(produit);


 
ça pose un problème si le produit existe deja dans la bd. Est ce qu'il y a un moyen pour contourner le pb ? par exemple à la place de persist une méthode qui met à jour ou qui ajoute uniquement si l'objet n'existe pas déjà ?  
 
Merci :)

n°1637283
vash42
cuisse
Posté le 06-11-2007 à 02:24:55  profilanswer
 

salut,
alors le serializable, c'est parce que tes données vont être transmises à la base de données par le éréseau", donc il faut qu'elles puissent être encryptée/décryptée, d'où le serializable.
Ensuite, ce que tu peux faire pour le persist c'est :  
 
Entity e = em.find(maclass.class,id);
if (e!=null) persist(e);
 
Sinon il y a la methode la methode flush()
Corrigez moi si il y a des erreurs.  
 Bon courage

n°1637302
guiguivts
Posté le 06-11-2007 à 07:43:07  profilanswer
 

Merci beaucoup j'essaierai ça :)


---------------
http://plainedemazerolles.free.fr
n°1637390
guiguivts
Posté le 06-11-2007 à 10:09:15  profilanswer
 

C'est bon ça a marché en modifiant un ou deux trucs merci ;)

n°1640673
guiguivts
Posté le 10-11-2007 à 14:46:56  profilanswer
 

Salut j'ai une ou deux questions à propos de jboss.  
 
Comment faire pour instancier des objets lors du lancement du serveur jboss ou lancer plusieurs threads par exemple ?  
 
Par exemple je veux que l'appli qui tourne sur mon serveur d'application aie lors de son lancement une référence vers un objet EntityManager, comment faire ?


---------------
http://plainedemazerolles.free.fr
n°1640873
guiguivts
Posté le 11-11-2007 à 12:00:22  profilanswer
 
n°1640921
guiguivts
Posté le 11-11-2007 à 14:10:04  profilanswer
 

Allez tant que j'y suis je voudrai savoir si c'est ce que je fais c'est pas trop crade ou pas ?  
 
J'ai une application serveur qui tourne avec jboss et une application cliente. Dans mon application Serveur j'ai une package chargé des communication et un pour le code Metier.  
 
Dans mon package Metier, j'ai une interface permettant d'acceder au reste du package et c'est dans cette classe que j'ai mis mon EntityManager pour gérer la persistance. Déjà j'ai aucune idée si c'est une bonne idée de le mettre la ou pas ?  
 
Ensuite le principe c'est que mon client se connecte sur le serveur grâce à cette méthode :  
 

Code :
  1. IFacadeSC FacadeServeurClient = (IFacadeSC) context.lookup("FacadeSC/remote" );


 
Et grâce à cette facade il peut utiliser les méthodes du serveur.  
 
Donc autre question afin d'instancier la facade de mon package métier j'ai mis dans le constructeur de ma facade serveurclient (qui est sur le serveur) ceci :
 

Code :
  1. public FacadeSC() throws NamingException
  2. {
  3. Context context = new InitialContext();
  4. FacadeMetier = (IFacadeM) context.lookup("FacadeM/remote" );
  5. }


 
La encore j'ai vraiment fait ça à tatons, ça fonctionne bien mais j'aimerai savoir si c'est réelement comme ça qu'il faut faire ?
 
merci :)


Message édité par guiguivts le 11-11-2007 à 14:10:43

---------------
http://plainedemazerolles.free.fr

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  J2EE EJB3 JBOSS Ejb entity

 

Sujets relatifs
Application J2eeStruts + EJB
J2EE passage de parametreDéveloppement modulaire avec des EJB3
EJB - Choix pertinent pour une application Web?[J2EE] Appel d'un JCA distant est il possible avec JBoss ?
ALFACO recrute Développeurs JAVA/J2EE H/F en CDIJ2EE - Tomcat - Sync apres creation de fichier.
[Java] - Lien entre "Apache + Tomcat" et JBoss 
Plus de sujets relatifs à : J2EE EJB3 JBOSS Ejb entity


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR