我正在学习Java EE,我正面临着一个问题。
使用HeidiSQL,我在订单表中添加了一个新行。
然后我转到可以列出所有订单的已部署应用程序。 当我全部显示时,新订单不会显示在列表中。
我正在使用Entity和JPA。 我必须再次部署我的应用程序(即使我没有做任何更改)来显示新订单。
有没有办法强制数据在已部署的应用中“进入”?
感谢您的回答
编辑:提供了一些代码:首先,我如何获取数据
public List<Commande> findCustom(String ref, String villeD, String villeA,
Date DD1, Date DD2, Date DA1, Date DA2,
String cpD, String cpA, String dest) {
return em.createNamedQuery("Commande.customSearch", Commande.class)
.setParameter("reference", ref)
.setParameter("villeD", villeD)
.setParameter("villeA", villeA)
.setParameter("dateD1", DD1)
.setParameter("dateD2", DD2)
.setParameter("dateA1", DA1)
.setParameter("dateA2", DA2)
.setParameter("cpD", cpD)
.setParameter("cpA", cpA)
.setParameter("dest", dest)
.getResultList();
}
我的命名查询是:
@NamedQuery(name = "Commande.customSearch", query = "SELECT c FROM Commande c "
+ "WHERE c.refCommande LIKE :reference "
+ "AND c.dateDepart BETWEEN :dateD1 AND :dateD2 "
+ "AND c.dateLivraisonPrevue BETWEEN :dateA1 AND :dateA2 "
+ "AND c.communeDepart LIKE :villeD "
+ "AND c.communeArrivee LIKE :villeA "
+ "AND c.cpDepart LIKE :cpD "
+ "AND c.cpArrivee LIKE :cpA "
+ "AND c.lieuLivr LIKE :dest "
+ "ORDER BY c.dateLivraisonPrevue ASC"),
然后,我如何显示我的数据: (p是我的页面参数,对不起法国变种)
<c:forEach items="${sessionScope.commandes}" var="cmd" begin="${(p - 1) * 8}" end="${p * 8}">
<tr data-href="${cmd.idCommande}">
<td>${cmd.refCommande}</td>
<td><fmt:formatDate value="${cmd.dateLivraisonPrevue}" type="DATE" pattern="dd/MM/yyyy" /></td>
<td>
<b>${cmd.lieuLivr}</b>
- ${cmd.adresse1Arrivee} ${cmd.adresse2Arrivee} ${cmd.adresse3Arrivee}
- <i>${cmd.cpArrivee} ${cmd.communeArrivee}</i>
</td>
<td>${cmd.dernierEtat.codeStatut.libelleSituation}</td>
<td><c:if test="${fn:length(cmd.fichierList) > 0}"><span class="glyphicon glyphicon-paperclip" aria-hidden="true"></span></c:if></td>
</tr>
</c:forEach>
这是我的Commande Class代码,包含所有注释:
package Classes;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author xxx
*/
@Entity
@Table(name = "commande")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Commande.customSearch", query = "SELECT c FROM Commande c "
+ "WHERE c.refCommande LIKE :reference "
+ "AND c.dateDepart BETWEEN :dateD1 AND :dateD2 "
+ "AND c.dateLivraisonPrevue BETWEEN :dateA1 AND :dateA2 "
+ "AND c.communeDepart LIKE :villeD "
+ "AND c.communeArrivee LIKE :villeA "
+ "AND c.cpDepart LIKE :cpD "
+ "AND c.cpArrivee LIKE :cpA "
+ "AND c.lieuLivr LIKE :dest "
+ "ORDER BY c.dateLivraisonPrevue ASC"),
@NamedQuery(name = "Commande.findCommandes", query = "SELECT c FROM Commande c "
+ "WHERE c.tiers IN (:tiers) "
+ "ORDER BY c.dateLivraisonPrevue DESC"),
@NamedQuery(name = "Commande.findAll", query = "SELECT c FROM Commande c"),
@NamedQuery(name = "Commande.findByIdCommande", query = "SELECT c FROM Commande c WHERE c.idCommande = :idCommande"),
@NamedQuery(name = "Commande.findByNumCommande", query = "SELECT c FROM Commande c WHERE c.numCommande = :numCommande"),
@NamedQuery(name = "Commande.findByRefCommande", query = "SELECT c FROM Commande c WHERE c.refCommande LIKE :refCommande"),
@NamedQuery(name = "Commande.findByEncombrement", query = "SELECT c FROM Commande c WHERE c.encombrement = :encombrement"),
@NamedQuery(name = "Commande.findByDateDepart", query = "SELECT c FROM Commande c WHERE c.dateDepart = :dateDepart"),
@NamedQuery(name = "Commande.findByChargement", query = "SELECT c FROM Commande c WHERE c.chargement = :chargement"),
@NamedQuery(name = "Commande.findByLieuChgt", query = "SELECT c FROM Commande c WHERE c.lieuChgt = :lieuChgt"),
@NamedQuery(name = "Commande.findByAdresse1Depart", query = "SELECT c FROM Commande c WHERE c.adresse1Depart = :adresse1Depart"),
@NamedQuery(name = "Commande.findByAdresse2Depart", query = "SELECT c FROM Commande c WHERE c.adresse2Depart = :adresse2Depart"),
@NamedQuery(name = "Commande.findByAdresse3Depart", query = "SELECT c FROM Commande c WHERE c.adresse3Depart = :adresse3Depart"),
@NamedQuery(name = "Commande.findByCpDepart", query = "SELECT c FROM Commande c WHERE c.cpDepart = :cpDepart"),
@NamedQuery(name = "Commande.findByCommuneDepart", query = "SELECT c FROM Commande c WHERE c.communeDepart = :communeDepart"),
@NamedQuery(name = "Commande.findByDateLivraisonPrevue", query = "SELECT c FROM Commande c WHERE c.dateLivraisonPrevue = :dateLivraisonPrevue"),
@NamedQuery(name = "Commande.findByLivraison", query = "SELECT c FROM Commande c WHERE c.livraison = :livraison"),
@NamedQuery(name = "Commande.findByLieuLivr", query = "SELECT c FROM Commande c WHERE c.lieuLivr = :lieuLivr"),
@NamedQuery(name = "Commande.findByAdresse1Arrivee", query = "SELECT c FROM Commande c WHERE c.adresse1Arrivee = :adresse1Arrivee"),
@NamedQuery(name = "Commande.findByAdresse2Arrivee", query = "SELECT c FROM Commande c WHERE c.adresse2Arrivee = :adresse2Arrivee"),
@NamedQuery(name = "Commande.findByAdresse3Arrivee", query = "SELECT c FROM Commande c WHERE c.adresse3Arrivee = :adresse3Arrivee"),
@NamedQuery(name = "Commande.findByCpArrivee", query = "SELECT c FROM Commande c WHERE c.cpArrivee = :cpArrivee"),
@NamedQuery(name = "Commande.findByCommuneArrivee", query = "SELECT c FROM Commande c WHERE c.communeArrivee = :communeArrivee"),
@NamedQuery(name = "Commande.findByNumDossier", query = "SELECT c FROM Commande c WHERE c.numDossier = :numDossier"),
@NamedQuery(name = "Commande.findByAffrete", query = "SELECT c FROM Commande c WHERE c.affrete = :affrete"),
@NamedQuery(name = "Commande.findByCiiCommande", query = "SELECT c FROM Commande c WHERE c.ciiCommande = :ciiCommande")})
public class Commande implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idCommande")
private Integer idCommande;
@Size(max = 64)
@Column(name = "num_commande")
private String numCommande;
@Size(max = 64)
@Column(name = "ref_commande")
private String refCommande;
@Size(max = 128)
@Column(name = "encombrement")
private String encombrement;
@Column(name = "date_depart")
@Temporal(TemporalType.DATE)
private Date dateDepart;
@Size(max = 64)
@Column(name = "chargement")
private String chargement;
@Size(max = 64)
@Column(name = "lieu_chgt")
private String lieuChgt;
@Size(max = 64)
@Column(name = "adresse1_depart")
private String adresse1Depart;
@Size(max = 64)
@Column(name = "adresse2_depart")
private String adresse2Depart;
@Size(max = 64)
@Column(name = "adresse3_depart")
private String adresse3Depart;
@Size(max = 64)
@Column(name = "cp_depart")
private String cpDepart;
@Size(max = 64)
@Column(name = "commune_depart")
private String communeDepart;
@Column(name = "date_livraison_prevue")
@Temporal(TemporalType.DATE)
private Date dateLivraisonPrevue;
@Size(max = 64)
@Column(name = "livraison")
private String livraison;
@Size(max = 64)
@Column(name = "lieu_livr")
private String lieuLivr;
@Size(max = 64)
@Column(name = "adresse1_arrivee")
private String adresse1Arrivee;
@Size(max = 64)
@Column(name = "adresse2_arrivee")
private String adresse2Arrivee;
@Size(max = 64)
@Column(name = "adresse3_arrivee")
private String adresse3Arrivee;
@Size(max = 64)
@Column(name = "cp_arrivee")
private String cpArrivee;
@Size(max = 64)
@Column(name = "commune_arrivee")
private String communeArrivee;
@Size(max = 64)
@Column(name = "num_dossier")
private String numDossier;
@Size(max = 64)
@Column(name = "affrete")
private String affrete;
@Size(max = 64)
@Column(name = "cii_commande")
private String ciiCommande;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "ciiCommande")
private List<Fichier> fichierList;
@JoinColumn(name = "dernier_etat", referencedColumnName = "idEtat")
@ManyToOne
private Etat dernierEtat;
@JoinColumn(name = "tiers", referencedColumnName = "tiers")
@ManyToOne(optional = false)
private Tiers tiers;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "ciiCommande")
private List<Etat> etatList;
然后我的CommandeFacade代码:
package Facades;
import Classes.Commande;
import Classes.Tiers;
import java.util.Date;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
/**
*
* @author xxx
*/
@Stateless
public class CommandeFacade extends AbstractFacade<Commande> {
@PersistenceContext(unitName = "PortailTransportPU")
private EntityManager em;
@Override
protected EntityManager getEntityManager() {
return em;
}
public CommandeFacade() {
super(Commande.class);
}
public Commande findByIdCommande(int id) {
return em.createNamedQuery("Commande.findByIdCommande", Commande.class)
.setParameter("idCommande", id)
.getSingleResult();
}
public List<Commande> findByRefCommande(String ref) {
return em.createNamedQuery("Commande.findByRefCommande", Commande.class)
.setParameter("refCommande", ref)
.getResultList();
}
public List<Commande> findCommandes(List<Tiers> t) {
return em.createNamedQuery("Commande.findCommandes", Commande.class)
.setParameter("tiers", t)
.getResultList();
}
public List<Commande> findCustom(String ref, String villeD, String villeA,
Date DD1, Date DD2, Date DA1, Date DA2,
String cpD, String cpA, String dest) {
return em.createNamedQuery("Commande.customSearch", Commande.class)
.setParameter("reference", ref)
.setParameter("villeD", villeD)
.setParameter("villeA", villeA)
.setParameter("dateD1", DD1)
.setParameter("dateD2", DD2)
.setParameter("dateA1", DA1)
.setParameter("dateA2", DA2)
.setParameter("cpD", cpD)
.setParameter("cpA", cpA)
.setParameter("dest", dest)
.getResultList();
}
}
编辑2: servlet代码
List<Partenaireutilisateur> PU = usr.getPartenaireutilisateurList();
List<Partenaire> partenaires = new ArrayList<>();
for (Partenaireutilisateur pu : PU) {
partenaires.add(pu.getIdPartenaire());
}
// 1.2 - Les tiers
List<Tiers> tiers = new ArrayList<Tiers>();
for (Partenaire p : partenaires) {
tiers.addAll(p.getTiersList());
}
// 2 - Les commandes
List<Commande> commandes = new ArrayList<Commande>();
for (Tiers T : tiers) {
commandes.addAll(T.getCommandeList());
}
for (Commande c : commandes) {
// Commandes hebdomadaires
if (c.getDateDepart().compareTo(current) <= 0
&& c.getDateDepart().compareTo(past) >= 0) {
commandesW.add(c);
}
}
session.setAttribute("commandes", commandesW);
session.setAttribute(("cmdcount"), commandesW.size());
request.setAttribute("pageTitle", "Dernières commandes");
this.getServletContext().getRequestDispatcher("/WEB-INF/commandes.jsp").forward(request, response);
我希望这是足够的代码