2011-08-04 3 views
1

Je ....Java Date de persistance requête

string qString = "select e from table where id= :id and trunc(Date) = TO_Date('03/04/2010','MM/DD/YYYY') 

Query newQuery = entityManager.createNamedQuery(qstring) 
newQuery.setParameter("id",id); 

Comment puis-je configurer la partie date plutôt que difficile coder? J'ai essayé newQuery.setParameter("date",date,TemporalType.Date) mais cela n'a pas fonctionné pour moi. Des pointeurs? J'ai aussi essayé d'utiliser simplement « newQuery.setParameter (« date », date) » et date utilisée comme argument me terminant par ...

string qString = "select e from table where id= :id and trunc(Date) = :date 

, mais je crois qu'ils ne sont pas correctement mis en forme, Quelle est la bonne façon de faire cela?

* MISE À JOUR *** J'essaie de le faire avec la date SQL. Vous tiendrons au courant!!!

+0

Avez-vous essayé d'utiliser des caractères génériques numériques tels que '? 1'? – Jeremy

+0

qu'est-ce que les wild cards numériques? Je n'en ai pas entendu parler comment ça wokr? – Kevin

+0

'em.createQuery (" de la table où id =? 1 "). SetParameter (1, id)' – Jeremy

Répondre

1

Quel est le problème avec les stocker dans des chaînes comme vous le faites la requête ??

String date = '03/04/2010'; 
String dateFormat = 'MM/DD/YYYY'; 

String qString = "SELECT e FROM table WHERE id = :id 
AND trunc(DATE) = TO_Date(date,dateFormat)"; 
+0

Correct, Cela fonctionnera, mais je pense qu'il y a une meilleure façon de le faire, j'ai l'impression que les bonnes pratiques vous permettent d'en savoir plus. Je peux le faire de cette façon, mais ça ne me semble pas juste – Kevin

+0

Je pense que c'est une meilleure pratique que de coder les valeurs en dur. Si vous voulez changer les valeurs, vous les changez une fois en haut de votre fichier et elles sont changé chaque endroit, ils sont référencés. –

+0

Je suis d'accord que c'est une meilleure pratique que de passer des valeurs codées en dur, mais je préfère passer en date simple de la définition des paramètres plutôt que de passer dans les chaînes. Ne trouvez-vous pas qu'il serait plus facile de gérer la persistance? – Kevin