Total members 11894 |It is currently Thu Nov 21, 2024 11:14 am Login / Join Codemiles

Java

C/C++

PHP

C#

HTML

CSS

ASP

Javascript

JQuery

AJAX

XSD

Python

Matlab

R Scripts

Weka





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;
    }

}

 




_________________
M. S. Rakha, Ph.D.
Queen's University
Canada


Author:
Mastermind
User avatar Posts: 2715
Have thanks: 74 time
Post new topic Reply to topic  [ 1 post ] 

  Related Posts  to : more than one parameter with name query
 using parameter with name query     -  
 get url parameter     -  
 pass parameter     -  
 class with constructor parameter     -  
 Java script time parameter     -  
 Pass class instance as parameter in php     -  
 Passing Enum as Type Parameter to method     -  
 Passing arrays as function parameter in java     -  
 EJB-QL IN where query     -  
 update query example     -  



Topic Tags

Java JPA






Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All copyrights reserved to codemiles.com 2007-2011
mileX v1.0 designed by codemiles team
Codemiles.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com