2013-04-13 3 views
0

여러분, 우리는 Java로 게임 서버를 개발하고 있습니다. 먼저 JPA/Spring Data/Hibernate가 있었고, 우리는 포기했습니다 (신에게 감사드립니다). 우리는 Hibernate를 직접 사용하기로 결정했습니다. 이 시점에서 필자는 필요할 경우 데이터 액세스, 평이한 Hibernate 및 네이티브 쿼리에 대한 기술을 변경하지 않을 것이라고 말할 수 있습니다.최대 절전 모드로 데이터 액세스 추상화


제 질문은이 시점에서 적절한 데이터 추상화에 관한 것입니다. Repository 패턴을 사용하거나 신의 목적으로 SessionTransaction 패턴을 제공하는 추상화만을 제공하는 의미가 있습니까? Unit of Work 패턴을 제공합니까? Repository의 경우

  • Unit of Work의 경우
  • 을 필요로 자신의 방법을 우리가 최대 절전 모드 Session을 노출하지만, 유연성을 제공하는 동시에 Transaction 관리를 캡슐에 너무 많은 구현이있을 것이다

각 방법의 장단점은 무엇입니까? 다른 어떤 전략이 제안 되었습니까? DAO 패턴을 솔루션으로 사용하거나 Session과 직접 작업하는 것이 더 좋을까요?

답변

1

내가 Ayende's advice로 갈 것 -
Session 데이터베이스 추상화; abstraction on top of your abstraction은 필요하지 않습니다.

+1

이것은 디자인 패턴의 묘지에 빛이 비치는 부분입니다. 감사. – OneMoreVladimir

+0

나는 얼마나 나쁜 * Ayende가 그 포스트로한지 믿을 수 없다. 모든 사냥꾼들은 사소한 패턴을 이해하지 못하기 때문에 ORM에 자신을 매고 있습니다. Repository 추상 PERSISTENCE는 전체로서, rdbms뿐만 아니라. 아무도 NOSQl db를 사용하지 않을 것이며 RDBMS뿐만 아니라 Redis 또는 MongoDb를 사용할 수있는 응용 프로그램이 필요하지 않습니다. – MikeSW

+0

@MikeSW 동의하지 않습니다. nosql 솔루션으로 이동하면 저장소가 만들어집니다. 일어날 수도 있고 일어나지 않을 수도있는 일 때문에 사전에 자신을 제한하지 마십시오. 귀하의 주장은 일종의 조숙 한 최적화입니다. –

관련 문제