0

我在 Scout 工作,需要 SmartField。为此,我需要设置查找建议。

我看到了创建查找调用的示例,而不是在查找服务中实现getConfiguredSqlSelect

但是我使用 Hibernate 来处理类,所以我的问题是如何将智能字段与 Hibernate 对象填充服务连接起来?

4

1 回答 1

1

根据 [1] 创建一个新的查找调用,不同之处如下:

  1. 不要选择 AbstractSqlLookupService 作为查找服务超类型,而是 AbstractLookupService
  2. 在关联的查找服务中,您现在需要实现 getDataByAll、getDataByKey 和 getDataByText

说明以下代码段应该会有所帮助:

public class TeamLookupService extends AbstractLookupService<String> implements ITeamLookupService {

  private List<ILookupRow<String>> m_values = new ArrayList<>();

  public TeamLookupService() {
    m_values.add(new LookupRow<String>("CRC", "Costa Rica"));
    m_values.add(new LookupRow<String>("HON", "Honduras"));
    m_values.add(new LookupRow<String>("MEX", "Mexico"));
    m_values.add(new LookupRow<String>("USA", "USA"));
  }

  @Override
  public List<? extends ILookupRow<String>> getDataByAll(ILookupCall<String> call) throws ProcessingException {
    return m_values;
  }

  @Override
  public List<? extends ILookupRow<String>> getDataByKey(ILookupCall<String> call) throws ProcessingException {
    List<ILookupRow<String>> result = new ArrayList<>();

    for (ILookupRow<String> row : m_values) {
      if (row.getKey().equals(call.getKey())) {
        result.add(row);
      }
    }

    return result;
  }
  ...

[1] https://wiki.eclipse.org/Scout/Tutorial/4.0/Minicrm/Lookup_Calls_and_Lookup_Services#Create_Company_Lookup_Call

于 2014-06-26T19:31:09.277 回答