Pages

Affichage des articles dont le libellé est DATA. Afficher tous les articles
Affichage des articles dont le libellé est DATA. Afficher tous les articles

Spring DATA - JPQL sujet

mardi 8 avril 2014




Bonjour,

j'ai hérité d'un projet qui utilise Spring data, jpa, hibernate avec différents fichiers de config comme celui-ci


Code:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

<tx:annotation-driven transaction-manager="transactionManager" />

<!-- Activate Spring Data JPA repository support -->
<jpa:repositories base-package="com.mc.appcontacts.repository" />


<!-- Declare a JPA entityManagerFactory -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="classpath:META-INF/contacts/hibernate/persistence.xml" />
<property name="persistenceUnitName" value="hibernatePersistenceUnit" />
<!-- <property name="dataSource" ref="dataSource" /> -->
<property name="jpaVendorAdapter" ref="hibernateVendor" />
</bean>

<!-- Specify our ORM vendor -->
<bean id="hibernateVendor" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="${hibernate.showSql}" />
</bean>

<!-- Declare a transaction manager-->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>


et des classes comme celles là :



Code:


1
2
3
4
5
6
7
8
9
10
11
12
13

public interface ContactRepository extends JpaRepository<Contact, Integer> {


List<Contact> findByid(int id);

List<Contact> findByname(String name );

@Query("SELECT c from Contact c WHERE LOWER(c.name) = LOWER(:name)")
String find(@Param("name") String name);


}



ça fonctionne très bien !

Seulement maintenant je dois constituer des requêtes dynamiques de manière à récupérer une donnée d'un enregistrement et non tout le contenu, exemple:
récupérer uniquement le nom du contact ou son téléphone ou autre chose...en tout cas un seul attribut.

J'ai vu sur le net que l'on pouvait utiliser JPQL qui permet de constituer sa requête ex :

Code:


String jpql = "select c." + property + " from ...";

Seulement voila, si j'ai bien compris, il faut déclarer une instance de la classe entitymanager pour utiliser la méthode createQuery :


Code:


1
2
3
4
5

EntityManagerFactory factory = Persistence.createEntityManagerFactory();
EntityManager em = factory.createEntityManager();
String jpql = "select c." + property + " from Contact...";
Query jQuery = em.createQuery(jpql);


Question :

Est ce que jpql est le meilleur choix ?
Si oui, est-il possible d'utiliser l'entity manager défini dans le fichier de conf, plutôt que de le déclarer à nouveau dans la classe ?
Si non, est ce que Spring data jpa permet de résoudre ma problématique (sélectionner un seul attribut) ?

Merci d'avance




concaténer champs date et envoi POST DATA avec array sujet

vendredi 28 mars 2014




Bonsoir à tous,

Pour un exercice , je dois envoyer sur une base sql distante (et qui ne m'appartient pas) des données dont des dates au format US.
Mon formulaire html est constitué d'un champs jour, d'un autre pour le mois et un dernier pour l'année.

Je dois donc les assembler, et les envoyer en post data via un array.

J'ai fais cela pour le traitement de la date :

Code:


1
2

$datecreation=$_POST['date_creation_annee']."/".$_POST['date_creation_mois']."/".$_POST['date_creation_jour'];


Puis pour l'envoi

Code:


1
2
3
4
5
6
7
$postdata = http_build_query(
array(

'ip' => $_POST['ip'],
'nom' => $_POST['nom'],
'date_creation' => $datecreation,
etc


Mon code vous semble t'il correct ?
Merci d'avance




chargement Data GridView Sans base donné sujet

jeudi 27 mars 2014




je veux charger DataGridView sans base de donné avec DataTable ,j'ai un problème d’exécution ,mon exécution me donne juste un seule ligne et lorsque j'ajoute un nouvelle ligne ce déclenche l'erreur.

private void button1_Click(object sender, EventArgs e)
{

DataTable tab = new DataTable();
tab.Columns.Add("matricule", Type.GetType("System.Int32"));
tab.Columns.Add("nom", Type.GetType("System.String"));
tab.Columns.Add("part", Type.GetType("System.Int32"));
for (int i = 0; i <= dg.Rows.Count - 1; i++)
{


DataRow dr = tab.NewRow();


dr[0] = dg.Rows[i].Cells[0].Value;
dr[1] = dg.Rows[i].Cells[1].Value;
dr[2] = dg.Rows[i].Cells[2].Value;
tab.Rows.Add(dr);
}



DataRow mdr = tab.NewRow();
mdr[0] = t1.Text;
mdr[1] = t2.Text;
mdr[2] = t3.Text;
tab.Rows.Add(mdr);


dg.DataSource = tab;


}
merci d'avance