我需要在Java中实现一个查询对象模式,用于我的可定制搜索界面(我正在编写的Web应用程序)。
有人知道哪里可以获取Query Object Pattern(Martin Fowler的QoP)的示例/教程吗?
谢谢您提前帮忙。
补充 如何将查询模式添加到现有的DAO模式中?
我需要在Java中实现一个查询对象模式,用于我的可定制搜索界面(我正在编写的Web应用程序)。
有人知道哪里可以获取Query Object Pattern(Martin Fowler的QoP)的示例/教程吗?
谢谢您提前帮忙。
补充 如何将查询模式添加到现有的DAO模式中?
我建议您查看JPA2。如何将查询模式添加到现有的DAO模式中?
public interface IDatabases
{
ISessionManager SessionManager { get; }
T Query<T>(IDatabaseQuery<T> query);
T Query<T>(ICachedDatabaseQuery<T> query);
void Command(IDatabaseCommand command);
T Command<T>(IDatabaseCommand<T> command);
}
假设有一个 POCO 实体类如下:
class Database1Poco
{
public int Property1 { get; set; }
public string Property2 { get; set; }
}
您可以像这样构建查询对象:
class Database1PocoByProperty1 : DatabaseQuery<Database1Poco>
{
public override Database1Poco Execute(ISessionManager sessionManager)
{
return sessionManager.Session.Query<Database1Poco>().SingleOrDefault(x => x.Property1 == Property1);
}
public int Property1 { get; set; }
}
然后像这样使用它们:
var database1Poco = _databases.Query(new Database1PocoByProperty1 { Property1 = 1 });