我有一個名爲類在我的Spring MVC的Web應用程序兩類定義和對象分別爲:創建一個包裝類
public Class {
//instance variables
int classId;
int className;
}
public Object {
//instance variables
int objectId;
int objectName;
}
我也有一個返回定義如下類和對象的列表的服務。
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) {
?????
}
我目前認爲有一個搜索框,允許用戶基於由方法getObjectSeedSearch,並getClassSeedSearch返回repsective名單上搜索任何類或對象 - 分別列出
名單,我倒要允許搜索文本框只需搜索這兩個類和對象,或許返回一個合併的列表 - 列表 - 您是否有通過利用的方法getObjectorClassSeedSearch兩個類和對象
,會是什麼最好的前進方式實施這個。 我隱約知道我想要創建一個包裝類和對象,也許在運行時多態確定哪些實例和項目是從列表中支持返回時。我猜我會在我的應用程序中有一個對應的bean。也許是一個泛型的練習。
什麼是一種有效的方法?
感謝
謝謝。但假設我沒有使用Class和Object類定義,並且使用了兩個不同的方法,可能會使用不同的方法和實例變量,但實例變量除外; clas1Name,class1ID,class2Name和class2ID,對於兩個類都是通用的解決方案 - 保存任一類的對象的列表 - 仍然按照您的建議 – Terman 2010-02-14 03:31:23
您提出的設計仍然存在同樣的問題,而我的抽象類會仍然工作。如果您要在列表中使用單一類型,並且您應該想要,那麼您必須具有通用接口或抽象基類。 – duffymo 2010-02-14 12:28:36