IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Wildfly/JBoss Java Discussion :

[EJB3] problème d'intéraction avec la BDD


Sujet :

Wildfly/JBoss Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de toomsounet
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 481
    Par défaut [EJB3] problème d'intéraction avec la BDD
    bonsoir, je bute sur un problème avec un entity bean, lorsque je fais des requêtes, le serveur me sort une erreur pourtant je ne vois pas ce qui ne va pas.
    En gros une table user(nuser number, nom varchar, pass varchar) est mappé avec un bean entité User

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    package entityPackage;
     
    import java.io.Serializable;
    import java.math.BigDecimal;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.Table;
     
     
    @Entity
    @Table(name = "user")
    @NamedQueries( {
            @NamedQuery(name = "User.findByNuser", query = "SELECT u FROM User u WHERE u.nuser = :nuser"),
            @NamedQuery(name = "User.findByNom", query = "SELECT u FROM User u WHERE u.nom = :nom"),
            @NamedQuery(name = "User.findByPass", query = "SELECT u FROM User u WHERE u.pass = :pass")
        })
    public class User implements Serializable {
     
        @Id
        @Column(name = "nuser", nullable = false)
        private BigDecimal nuser;
     
        @Column(name = "nom", nullable = false)
        private String nom;
     
        @Column(name = "pass", nullable = false)
        private String pass;
     
        /** Creates a new instance of User */
        public User() {
        }
     
     
        public User(BigDecimal nuser) {
            this.nuser = nuser;
        }
     
     
        public User(BigDecimal nuser, String nom, String pass) {
            this.nuser = nuser;
            this.nom = nom;
            this.pass = pass;
        }
     
        public BigDecimal getNuser() {
            return this.nuser;
        }
     
     
        public void setNuser(BigDecimal nuser) {
            this.nuser = nuser;
        }
     
     
        public String getNom() {
            return this.nom;
        }
     
        public void setNom(String nom) {
            this.nom = nom;
        }
     
     
        public String getPass() {
            return this.pass;
        }
     
     
        public void setPass(String pass) {
            this.pass = pass;
        }
     
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (this.nuser != null ? this.nuser.hashCode() : 0);
            return hash;
        }
     
     
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof User)) {
                return false;
            }
            User other = (User)object;
            if (this.nuser != other.nuser && (this.nuser == null || !this.nuser.equals(other.nuser))) return false;
            return true;
        }
     
     
        @Override
        public String toString() {
            return "entityPackage.User[nuser=" + nuser + "]";
        }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    @Stateless
    public class HelloSessionBean implements HelloSessionLocal {
     
        @PersistenceContext(unitName="monBean")
        private EntityManager em;
     
     
        /** Creates a new instance of HelloSessionBean */
        public HelloSessionBean() {
        }
     
        public String getHello(){
            return "hello";
        }
        public String chercheUser()  {
           Object results;
     
     
     
     
           Query q =  em.createQuery("User.findByNom'").setParameter("nom","dam");
           List<User> liste = q.getResultList();
     
     
     
           return "";
     
        }
     
    }
    Pourtant mon persistence.xml à l'air correct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
      <persistence-unit name="monBean" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/MYSQLDAMLUDO</jta-data-source>
        <class>entityPackage.User</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties>
          <property name="hibernate.show_sql" value="true"/>
        </properties>
      </persistence-unit>
    </persistence>
    j'ai ce problème là et je sèche :s
    javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute query
    org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69)
    org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
    org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197)
    org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
    org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
    org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
    org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
    org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
    org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:181)
    org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:79)
    $Proxy177.chercheUser(Unknown Source)
    HitServlet.doGet(HitServlet.java:46)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

  2. #2
    Membre chevronné Avatar de toomsounet
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 481
    Par défaut
    Bon j'ai résolu le problème, il fallait ajouter un fichier de config dans le serveur Jboss pour décrire une nouvelle connection à une base de données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?xml version="1.0" encoding="UTF-8"?>
     
    <!-- $Id: MYSQLDAMLUDO-ds.xml,v 1.3.2.3 2006/02/07 14:23:00 acoliver Exp $ -->
    <!--  Datasource config for MySQL using 3.0.9 available from:
    http://www.mysql.com/downloads/api-jdbc-stable.html
    -->
     
    <datasources>
      <local-tx-datasource>
        <jndi-name>MYSQLDAMLUDO</jndi-name>
        <connection-url>jdbc:mysql://localhost:3308/damludo</connection-url>
        <driver-class>com.mysql.jdbc.Driver</driver-class>
        <user-name>login</user-name>
        <password>pass</password>
        <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
     
        <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
     
        <metadata>
           <type-mapping>mySQL</type-mapping>
        </metadata>
      </local-tx-datasource>
    </datasources>
    j'ai trouvé de précieuses informations ici:
    http://docs.jboss.org/ejb3/app-serve...gle/index.html
    http://docs.jboss.org/ejb3/app-serve...gle/index.html

Discussions similaires

  1. Problème de connexion avec une BDD Oracle
    Par Drey242 dans le forum JDBC
    Réponses: 3
    Dernier message: 24/11/2010, 11h39
  2. Réponses: 1
    Dernier message: 12/04/2010, 17h16
  3. Réponses: 6
    Dernier message: 27/06/2007, 14h50
  4. [EJB3] problème de fetch=lazy avec ejb3
    Par pbdlpc dans le forum JPA
    Réponses: 2
    Dernier message: 16/01/2007, 21h52
  5. [C#]Problème OleDbCommand.ExecuteReader avec BdD Access
    Par Renesis57 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2006, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo