2012-05-01 2 views
0

Hibernate는 프레임 워크가 아무도 연결을 필요로하지 않을 정도로 굉장하다고 생각하기 때문에 connection()을 더 이상 사용하지 않게되었습니다. 아니, 아니, this is NOT the same thing as providing the connection, 하스켈에서 오지 않는 한. 어쨌든, 최대 절전 모드를 제거하는 더 좋은 아이디어가 있습니다. 연결 래퍼가 최대 절전 모드 세션이므로 세션을 연결로 전달할 수 있습니다. 리플렉션을 통해 연결을 얻을 수있는 방법이 있다고 들었습니다. 누구든지 그 래퍼를 어디에서 얻을 수 있는지 알고 있습니까?놀라운 Hibernate 프레임 워크가 세션으로부터 연결 객체를 제공하게 만드는 방법은 무엇입니까?

public class SessionConnection implements Connection { 

    private final Session session; 
    private final Connection conn; 

    public SessionConnection(Session session) { 
     this.session = session; 
     this.conn = getConnectionFromStupidHibernate(session); 
    } 

    // delegate methods go here 
} 
+1

당신의 디자인에 최대 절전 모드, 크기, 최대 절전 주위에 당신의 응용 프로그램을 설계하지 않지만, 경우에 저를 알려주세요 당신은 내가 항상 이것을하고 싶었던 것처럼 알게됩니다. – JohnPristine

+1

흠 ... 이것이 약간의 고통이라는 데 동의하지만 doWork() 솔루션이 왜 효과가 없을까요? – GreyBeardedGeek

+0

자바는 기능 언어가 아닙니다. 클라이언트가 원하는대로 무엇이든 할 수 있도록 객체를 전달하려고합니다. 함수 나 클로저를 전달하는 것은 매우 다른 또 다른 일입니다. – chrisapotek

답변

4

당신은 당신이 당신의 SessionFactory를 사용하는 것과 동일한 데이터 소스를 사용, 스프링 사용하는 경우 - 나도 몰라

+0

물론 이것은 Spring과는 아무런 관련이 없습니다.하지만 보통 Spring에서는 마음에 점프하는 첫 번째 방식으로 모든 것을 코드로 함께 묶는 대신 독립된 객체로 시스템을 구성 할 것을 권장합니다. 어쨌든 hib/spring을 설정하는 것은 이미 어딘가에 정의 된 DataSource 타입의 bean을 가지고있다. 그래서 네가해야 할 일은 네가 필요로하는 곳에서 자동 응답하는 것이다. – ianpojman