[SQL] 최대 절전 모드 createSQlquery 결과에서 SQL 열 이름을 사용
SQL최대 절전 모드 createSQlquery 결과에서 SQL 열 이름을 사용
나는 쿼리에 원하는 복합 기본 키와 SQL 뷰의 몇 가지를 가지고 있고, 최대 절전 모드가 복합 키이스와 작업에 통증이 만드는 것이므로, 나는 createSQLQuery을 사용하고 있습니다. 문제는이 방법 만 목록을 반환 할 수 있으며, 나는 그들의 인덱스에 의해 colums를 참조 할 필요가있다.
내가 JDBC처럼 뭔가를 할 자신의 SQL 이름 대신 자신의 인덱스에 의해 열을 참조 할 수있는 모든 기회?
해결법
-
==============================
1.
Query query=session.createSQLQuery("your query"); query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE); List<Map<String,Object>> aliasToValueMapList=query.list();
당신이 코드에서 알아낼 수 있듯이, 목록은 각 행을 나타내는지도 개체를 포함합니다. 각 Map 객체는 값으로 키와 값으로 열 이름을 갖게됩니다.
참고 :은 SQLQuery에 대한이 작품, 당신은 당신이 키와 인덱스 값을 얻을 것이다 별칭을 지정하지 않고 HQL 쿼리 AliasToEntityMapResultTransformer를 사용하는 경우.
당신이 다시 POJO 목록에 aliasToValueMapList 변환하는 경우에, 나는 당신이 당신의 자신을 만드는 데 조언 의 ResultTransformer는 'transformTuple'방법에서 사용자 정의 개체를 반환합니다.
-
==============================
2.귀하의 질문이 모호 - 첫 번째 단락에서 당신은 SQL 이름으로, 인덱스와 두 번째의 열을 참조 할 수 있습니다. 인덱스가 용이하여 이후, 나는 이름으로 가정합니다.
귀하의 질문이 모호 - 첫 번째 단락에서 당신은 SQL 이름으로, 인덱스와 두 번째의 열을 참조 할 수 있습니다. 인덱스가 용이하여 이후, 나는 이름으로 가정합니다.
우선, 당신은 기본 JDBC 연결을 액세스하고 순수한 JDBC와 마찬가지로 그것을 처리하기 위해 doWork 방법을 사용할 수 있습니다 :
session.doWork(new Work() { public void execute(Connection connection) throws SQLException { connection.prepareStatement(... } });
또는, 당신은 열 이름의 문자열을 [] 반환 query.getReturnAliases를 사용할 수 있습니다. effciency, 나는 아마 인덱스 별명의지도를 구축 할 것입니다 그리고 당신은 그 결과 같은 [map.get ( "열 이름을")] 할 수 있습니다.
(주석으로 시도하지 않은) XML 매핑을 사용하지만 정말, Hibernate는 아주 쉽게 복합 키를 처리합니다. 그것은 앞까지 조금 더 많은 작업을이고 복잡한 관계 (외래 키 이름은 / 스팬이 일치하지 않을 때 주로)과 몇 가지 문제가있다,하지만 당신은 ID 클래스를 생성하고지도하면, 당신은 HQL / 기준 및 GET 스틱 수 게으른 로딩, 간단한 조인, 더러운 검사 등의 모든 혜택
-
==============================
3.저도 같은 문제를 가지고하지만 난이 사용 때 해결
저도 같은 문제를 가지고하지만 난이 사용 때 해결
Query query=session.createSQLQuery("your query"); query.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
나는 헤더 이름으로 결과를 얻을하지만 난 Employee.class에서 Shipmentcolor으로 SQL 쿼리 선택 'DCA5E3'에 새 열을 만들 때 나는 새로운 문제를 가지고 "D":하지만이 경우에는 내가 SHIPMENTCOLOR을 얻었다. 어떻게 SHIPMENTCOLOR의 전체 가치를 얻을 수 있습니다.
from https://stackoverflow.com/questions/2605385/using-sql-column-names-in-hibernate-createsqlquery-result by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL에서 여러 행을 삭제하는 방법 어디 ID = (X와 Y) (0) | 2020.06.21 |
---|---|
[SQL] 날짜 범위와 PostgreSQL을 쿼리 (0) | 2020.06.21 |
[SQL] 십자가의 용도는 무엇을 가입입니까? (0) | 2020.06.21 |
[SQL] MS SQL 서버에 그들을 기존 테이블에 열을 추가하고 고유 번호를 (0) | 2020.06.21 |
[SQL] 여러 고객과 DB 큐으로 SQL Server를 사용 (0) | 2020.06.21 |