Total members 10262 | Gratitudes |It is currently Wed May 23, 2012 9:21 pm Login / Join Codemiles


All times are UTC [ DST ]




Post new topic Reply to topic  Quick reply  [ 1 post ] 
Author Code Snippet
 Code subject: more than one parameter with name query
PostPosted: Tue Apr 20, 2010 8:23 pm 
Offline
Mastermind
User avatar

Joined: Tue Mar 27, 2007 10:55 pm
Posts: 2279
Location: Earth
Has thanked: 39 time
Have thanks: 61 time

Following example show the case when using more than one parameter with your defined named query . The named query here is defined inside the entity class . Each named query has a name which is unique all over your JPA model .

Entity class :
Code:

package com
.codemiles.jpa;
import java.util.Collection;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.OneToMany;


@
Entity
@NamedQueries({
    @NamedQuery(name="FindAllTopics",
                query="SELECT t FROM Topic t"),
@
NamedQuery(name="FindTopicByTitle",
            query="SELECT t FROM Topic t WHERE t.title = :title")
            ,
            @NamedQuery(name="FindTopicByTitleAndDate",
                        query="SELECT t FROM Topic t WHERE t.title = :title and t.creationDate=:creationDate") })
@
Table(name="TOPIC")
public class Topic implements java.io.Serializable{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    @Id
    private int Id
;
    private String title;
    private Date creationDate;
    private Date modifedDate;
    private String content;
    @OneToMany(mappedBy="topic")
    private Collection<Comment> comments;

    public int getId() {
        return Id;
    }
    public void setId(int id) {
        Id = id;
    }
    
    
@Column(name="TITLE")
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    
    
@Column(name="CREATION_DATE")
    public Date getCreationDate() {
        return creationDate;
    }
    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }
    
    
@Column(name="MODIFED_DATE")
    public Date getModifedDate() {
        return modifedDate;
    }
    public void setModifedDate(Date modifedDate) {
        this.modifedDate = modifedDate;
    }
    
    
@Column(name="CONTENT")
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public void setComments(Collection<Comment> comments) {
    this.comments = comments;
    }
    public Collection<Comment> getComments() {
    return comments;
    }
}
 


Service that using JPA
Code:

package com
.codemiles.jpa;

import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

/**
 * @author codemiles.
 *
 */
public abstract class JPAService {
    private EntityManager entityManager;

    /**
     * @param args
     */
    public void insertTopic(Topic topic) {
    EntityManagerFactory factory = Persistence
            
.createEntityManagerFactory("persistenceUnitName");
    entityManager = factory.createEntityManager();
    entityManager.getTransaction().begin();
    String title = "Codemiles";
    Date date = new Date(System.currentTimeMillis());
    List<Topic> list = loadTopicByTitleAndDate(title, date);
    if (list != null) {
        for (Topic currentTopic : list) {
        System.out.println("Topic id#(" + currentTopic.getId()
                + " ). Title = " + currentTopic.getTitle()
                + " , Content = " + currentTopic.getContent());
        }
    }
    entityManager.persist(topic);
    entityManager.getTransaction().commit();
    entityManager.close();
    factory.close();

    }

    /**
     * @return
     *  List of topics retrieved 
     */
    public List<Topic> loadAllTopics() {
    List<Topic> resultList = entityManager
            
.createNamedQuery("FinlAllTopics").getResultList();

    return resultList;
    }

    /**
     * @param title
     *   title of the topic . 
     * @return
     *  List of topics retrieved 
     */
    public List<Topic> loadTopicByTitle(String title) {
    Query query = entityManager.createNamedQuery("FindTopicByTitle");
    query.setParameter("title", title);
    List<Topic> topicList = query.getResultList();
    return topicList;
    }

    /**
     * @param title
     *   title of the topic . 
     * @param date
     *   date of the creation .
     * @return
     *  List of topics retrieved 
     */
    public List<Topic> loadTopicByTitleAndDate(String title, Date date) {
    Query query = entityManager.createNamedQuery("FindTopicByTitleAndDate");
    query.setParameter("title", title);
    query.setParameter("creationDate", date);
    List<Topic> topicList = query.getResultList();
    return topicList;
    }

}

 

_________________
Currenlty programming with : java , html , php , and javascript . (OCJP-6 certified )


TOP
 Profile Send private message  
Reply with quote  
Post new topic Reply to topic Quick reply  [ 1 post ] 
Quick reply


  

 Similar topics
 update query example
 select query example in php
 insert query example
 get url parameter
 pass parameter
 query
 what is the query to retrieve to student data based on least
 paging JPA Query result
 Create auto numbered column in mysql query
 Insert using native query

All times are UTC [ DST ]


Users browsing similar codes

Users browsing this forum: No registered users and 3 guests



Jump to:  
Previous Code Snippet | Next Code Snippet 




Home
General Talks
Finished Projects
Code Library
Games
Tutorials

Java
C/C++
C-sharp
php
Script
JSP/Servlets
Ajax
ASP/ASP.net
Google SEO
Database
Communications
Phpbb3 styles
Photoshop tutorials
Flash tutorials
Find a job






Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All copyrights reserved to codemiles.com 2007-2011
mileX v1.0 designed by codemiles team