J'ai deux définitions de classe dans mon application web Spring MVC nommée classe et l'objet respectivement:Création d'une classe enveloppe
public Class {
//instance variables
int classId;
int className;
}
public Object {
//instance variables
int objectId;
int objectName;
}
J'ai aussi un service qui retourne une liste des classes et objets définis comme suit.
package com.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
import com.domain.Class;
import com.domain.Object;
import com.service.SearchManager;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import java.io.Serializable;
public class SempediaSearchManager implements com.service.SearchManager {
private SessionFactory sessionFactory;
private List<Class> classes;
private List<Object> objects;
public List<Class> getClassSeedSearch(String classSeed) {
Configuration configuration = new Configuration().configure();
sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
try {
Query query = session.createQuery("from Class c where lower(c.className) like lower('"
+ classSeed + "%')");
return query.list();
} finally {
session.close();
}
}
public List<Object> getObjectSeedSearch(String objectSeed) {
Configuration configuration = new Configuration().configure();
sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
try {
Query query = session.createQuery("from Object o where lower(o.objectName) like lower('"
+ objectSeed + "%')");
return query.list();
} finally {
session.close();
}
}
?????
skeleton method
public List<ClassesAndObjects> getObjectorClassSeedSearch(String objectOrClassSeed) {
?????
}
La vue que je présente a une boîte de recherche qui permettent à un utilisateur de rechercher soit des classes ou objets en fonction de la liste RESPECTIFS renvoyée par les méthodes getObjectSeedSearch et getClassSeedSearch - Liste, Liste respectivement
Ce que je souhaitez permettre à la zone de texte de recherche pour rechercher simplement pour les classes et les objets, retourner peut-être une liste fusionnée - liste - si vous voulez que a deux classes et les objets en tirant parti d'une méthode getObjectorClassSeedSearch
Quelle serait la meilleur moyen d'avancer mettre en œuvre ceci. Je sais vaguement que je voudrais créer une classe wrapper qui prendrait à la fois la classe et l'objet et peut-être polymorphiquement au moment de l'exécution de déterminer quelle instance et élément est lorsqu'il est renvoyé de propped de la liste. Je suppose que j'aurais un bean correspondant pour cela dans ma demande. peut-être un exercice avec des génériques.
Qu'est-ce qui serait un moyen efficace de procéder?
Merci
Merci. Mais en supposant que je n'ai pas utilisé les définitions de classe et d'objet, et utilisé deux définitions différentes, éventuellement avec des méthodes et des variables d'instance différentes, sauf pour les variables d'instance; clas1Name, class1ID, class2Name et class2ID, communs aux deux classes, l'approche d'une solution - une liste contenant des objets de l'une ou l'autre classe - est toujours celle que vous suggérez – Terman
Votre conception proposée souffre toujours du même problème, et ma classe abstraite fonctionne toujours.Si vous voulez avoir un seul type dans la liste, et vous devriez le vouloir, alors vous devez avoir une interface commune ou une classe de base abstraite. – duffymo