如何在ATG中使用名称ID等特定字段创建自定义存储库。以及如何根据名称ID或任何其他字段查询相同的信息。
答案 0 :(得分:1)
在config中的某个路径创建testRepository.xml(例如/com/myproject/content/testRepository.xml),其中包含具有所有自定义表的项描述符。
在与
$类= atg.adapter.gsa.GSARepository $范围=全球 XMLToolsFactory = / ATG /发电机/服务/ XML / XMLToolsFactory 展现dataSource = / ATG /发电机/服务/ JDBC / SwitchingDataSource definitionFiles = / COM / myproject的/内容/ testRepository.xml groupContainerPath = / ATG /注册表/ RepositoryGroups idGenerator = / ATG /发电机/服务/ IdGenerator 锁管理= / ATG /发电机/服务/ ClientLockManager repositoryName =测试存储库 transactionManager的= / ATG /发电机/交易/事务管理
现在您可以在Droplet或表单处理程序中将此组件引用为 -
testRepository = / COM / myproject的/内容/ testRepository
在java中创建相同的setter和getter。
现在您可以查询 -
private RepositoryItem[] getMyTestItems() { RepositoryItem[] testItems = null; try { RepositoryView repView = getTestRepository().getView("myItemDescriptor"); RqlStatement statement = getRqlQuery(); //your query that can be defined in property file Object params[] = new Object[1]; params[0] = "anyParam"; testItems = statement.executeQuery(repView, params); } catch (RepositoryException ex) { vlogDebug("testItems{0} ", ex); } finally { LoadingStrategyContext.popLoadStrategy(); } return testItems; }