четверг, 12 апреля 2018 г.
четверг, 15 марта 2018 г.
Как связать независимые таблицы через hibernate.
Пример более содержит сложный случай, когда нужно связать через подстроки полей.
Вкратце: используется Projections.sqlProjection.
Но это не рекомендуется, т.к. используются голый SQL, который может быть вендорозависим.
Criteria c = getSession().createCriteria(SWClass.class, "sw");
DetachedCriteria dc = DetachedCriteria.forClass(Di.class);
dc.setProjection(
Projections.sqlProjection("
SUBSTR(upk,0,INSTR(upk,'/',1,1)-1) as_id,
SUBSTR(upk, INSTR(upk,0,INSTR(upk,'/',1,1)-1)+1, LENGTH(upk)) as mgmt_ip
", new String[]{"asId", "mgmtIp"}, new Type[] { new StringType(), new StringType() }
)
);
c.add(Subqueries.propertiesIn(new String[]{"sw.asId", "sw.mgmtIp"}, dc));
Пример более содержит сложный случай, когда нужно связать через подстроки полей.
Вкратце: используется Projections.sqlProjection.
Но это не рекомендуется, т.к. используются голый SQL, который может быть вендорозависим.
Criteria c = getSession().createCriteria(SWClass.class, "sw");
DetachedCriteria dc = DetachedCriteria.forClass(Di.class);
dc.setProjection(
Projections.sqlProjection("
SUBSTR(upk,0,INSTR(upk,'/',1,1)-1) as_id,
SUBSTR(upk, INSTR(upk,0,INSTR(upk,'/',1,1)-1)+1, LENGTH(upk)) as mgmt_ip
", new String[]{"asId", "mgmtIp"}, new Type[] { new StringType(), new StringType() }
)
);
c.add(Subqueries.propertiesIn(new String[]{"sw.asId", "sw.mgmtIp"}, dc));
Подписаться на:
Сообщения (Atom)