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

JPA Java Discussion :

Insertion et exécution dans une table avec Hibernate et JPA


Sujet :

JPA Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 54
    Points : 31
    Points
    31
    Par défaut Insertion et exécution dans une table avec Hibernate et JPA
    Bonjour,

    Je veux insérer les données d'un objet java dans une table à l'aide d'hibernate et annotations JPA,dans ce cas j'ai crée deux classes java,les voici donc:

    Employee.java
    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
     package com.hibernate.chapter1;
     
     
    import java.util.Date;
    import java.util.Calendar;
     
    import javax.persistence.Basic;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import javax.persistence.Temporal;
    import javax.persistence.TemporalType;
    import javax.persistence.Transient;
     
    @Entity
    @Table(name="EmployeeInfo")
    public class Employee {
    	private int empId;
    	private String empName;
    	private String empPassword;	
    	private String empEmailAddress;
    	private boolean isPermanent;
    	private Calendar empJoinDate;
    	private Date empLoginTime;
     
     
     
     
    	@Transient
    	public String getEmpPassword() {
    		return empPassword;
    	}
    	public void setEmpPassword(String empPassword) {
    		this.empPassword = empPassword;
    	}
    	@Column(nullable=false)
    	public String getEmpEmailAddress() {
    		return empEmailAddress;
    	}
    	public void setEmpEmailAddress(String empEmailAddress) {
    		this.empEmailAddress = empEmailAddress;
    	}
    	@Basic
    	public boolean isPermanent() {
    		return isPermanent;
    	}
    	public void setPermanent(boolean isPermanent) {
    		this.isPermanent = isPermanent;
    	}
    	@Temporal(TemporalType.DATE)
    	public Calendar getEmpJoinDate() {
    		return empJoinDate;
    	}
    	public void setEmpJoinDate(Calendar empJoinDate) {
    		this.empJoinDate = empJoinDate;
    	}
    	@Temporal(TemporalType.TIMESTAMP)
    	public Date getEmpLoginTime() {
    		return empLoginTime;
    	}
    	public void setEmpLoginTime(Date empLoginTime) {
    		this.empLoginTime = empLoginTime;
    	}
     
    	@Id
    	@Column(name="EmployeeId")
    	public int getEmpId() {
    		return empId;
    	}
    	public void setEmpId(int empId) {
    		this.empId = empId;
    	}
    	public String getEmpName() {
    		return empName;
    	}
    	public void setEmpName(String empName) {
    		this.empName = empName;
    	}
     
    }
    et TestEmployee.java
    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
     package com.hibernate.chapter1;
     
    import java.sql.Date;
    import java.util.GregorianCalendar;
     
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.AnnotationConfiguration;
    import org.hibernate.tool.hbm2ddl.SchemaExport;
     
    public class TestEmployee {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		AnnotationConfiguration config= new AnnotationConfiguration();
    		config.addAnnotatedClass(Employee.class);
    		config.configure("hibernate.cfg.xml");
    		new SchemaExport(config).create(true, true);
     
    		SessionFactory factory = config.buildSessionFactory();
    		Session session = factory.getCurrentSession();
    		session.beginTransaction();
    		Employee alex = new Employee();
    		alex.setEmpId(100);
    		alex.setEmpName("Eric eric");
    		alex.setEmpEmailAddress("eric@hibernate.com");
    		alex.setEmpPassword("eric");
    		alex.setPermanent(true);
    		alex.setEmpJoinDate(new GregorianCalendar(2013,7,5));
    		alex.setEmpLoginTime(Date.valueOf("2013-7-5"));
    		session.save(alex);
    		session.getTransaction().commit();
     
    	}
     
    }
    et voici les problèmes et exceptions qui me donne durant l’exécution:
    Exception in thread "main" java.lang.IllegalArgumentException
    at java.sql.Date.valueOf(Unknown Source)
    at com.hibernate.chapter1.TestEmployee.main(TestEmployee.java:33)
    et aussi il n'y a pas d'insertion dans la table

    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Le type de Date pour la propriété empLoginTime est de type java.util.Date et tu lui affectes un type java.sql.Date dans la méthode main.
    Pour le valueOf, je pense que le bon format est Date.valueOf("2013-07-05").

    A+.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 54
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    Le type de Date pour la propriété empLoginTime est de type java.util.Date et tu lui affectes un type java.sql.Date dans la méthode main.
    Pour le valueOf, je pense que le bon format est Date.valueOf("2013-07-05").

    A+.

    Mais ceux-ci je l'ai fais déjà dont vous pouvez la remarquer pour java.util.Date je l'ai déjà fais dans ma class Employee et java.util.sql.Date je l'ai eu déjà dans ma méthode main et aussi valueOf je l'ai bien écrit avant comme tu m'a mentionné

    et toujours durant l'éxecution je reçois ce message:
    Exception in thread "main" java.lang.IllegalArgumentException
    at java.sql.Date.valueOf(Unknown Source)
    at com.hibernate.chapter1.TestEmployee.main(TestEmployee.java:34)

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 54
    Points : 31
    Points
    31
    Par défaut
    J'ai résolu ce problème en modifiant le format de la date dans Date.valueOf() comme ceci:
    Date.valueOf("2013-07-05"));

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Salut tout le monde je suis actuellement dans un stage ils ont me demander de créer une application de gestion fichiers (télécharger fichiers stocké dans une base de données,les consulter les traiter et les envoyer par la suite ) , et ils ont insisté d'utiliser l'environnement jira, j'ai lu un petit peu sur cette outil mais j'ai pas compris comment l'utiliser pour développer cette application

  6. #6
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 47
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Eric_beauvais Voir le message
    J'ai résolu ce problème en modifiant le format de la date dans Date.valueOf() comme ceci:
    pour moi j'utilise la bibliothèque JodaTime

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insert en masse dans une table avec Hibernate
    Par goomie dans le forum Hibernate
    Réponses: 2
    Dernier message: 08/05/2011, 23h47
  2. Insertion globale dans une table avec Hibernate
    Par sandrine49 dans le forum Hibernate
    Réponses: 6
    Dernier message: 06/05/2010, 16h19
  3. Réponses: 2
    Dernier message: 28/09/2009, 13h46
  4. pb Insertion d'éléments dans une table avec mySql++
    Par donkeyquote dans le forum C++
    Réponses: 1
    Dernier message: 24/02/2008, 00h39
  5. Réponses: 3
    Dernier message: 10/02/2006, 15h48

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