Вы должны создать один класс контекста.
public class Context {
private final static Context instance = new Context();
public static Context getInstance() {
return instance;
}
private Connection con;
public void setConnection(Connection con)
{
this.con=con;
}
public Connection getConnection() {
return con;
}
private TabRoughController tabRough;
public void setTabRough(TabRoughController tabRough) {
this.tabRough=tabRough;
}
public TabRoughController getTabRough() {
return tabRough;
}
}
Вам нужно просто установить экземпляр контроллера при инициализации с помощью
Context.getInstance().setTabRough(this);
, и вы можете использовать его из всего приложение только с помощью
TabRoughController cont=Context.getInstance().getTabRough();
Теперь вы можете передать параметр любому контроллеру из всего приложения.
Объект Query
при запросе на итерацию результатов, представляющих объект, подобный TestSet
, выполняет идентификацию в результирующих строках на основе идентификатора объекта, так что если запрос должен был возвращать 100 строк, каждый с тем же TestSet
, вы получите только один объект результата. Это поведение проистекает из функции «горячего присоединения» Query
, где часто бывает, что многие строки результатов получаются с одинаковым первичным идентификатором, но также содержат переменную вторичную идентификацию соответствующей строки, которая должна быть заполняется в коллекцию по каждой первичной идентичности - в этом очень распространенном случае желательно только один экземпляр первичного идентификатора.
Давайте рассмотрим, что делает distinct()
. Предположим, что ваш запрос для объектов 4M возвращает 1000 строк с id = 1, 1000 строк с id = 2 и т. Д. Запрос с лимитом (100) попадает в первые 100 строк с id = 1, Query
uniquifies, и вы получаете один результат объект назад, так как все они id = 1. Но с distinct()
внезапно мы получаем 100 строк с различными тождествами, то есть «id = 1», «id = 2», «id = 3». Query
затем присваивает каждой из этих строк новому TestSet
объекту в карте идентификации, и вы получите 100 строк назад.
Параметр echo='debug'
на вашем Engine
временно покажет, что SQL является а также возвращаемые строки результатов. Когда вы видите много строк результатов с одним и тем же первичным ключом, вы знаете, что Query
, когда его попросят вернуть полные объекты, будет уникальным для всех этих избыточных тождеств до одного объекта, представленного для каждой строки.