2011-08-25 1 views
0

최근에 최대 절전 모드를 사용하기 시작 했으므로 어리석은 질문 인 경우 사과드립니다.필요한 테이블이 포함 된 데이터베이스에서 작업 할 수있는 방법을 패키지화하는 방법

다른 응용 프로그램이 활용할 수있는 모듈에 일부 코드를 패키지화하고 싶습니다. 예를 들어 SMS 메시지 전송을 처리하는 패키지. 이 패키지는 기본 구성 데이터를 얻기 위해 일부 데이터베이스 작업을 수행 한 다음 트랜잭션 로깅을 수행 할 수 있습니다. 그러면 SMS 기능이 필요한 응용 프로그램에 추가됩니다. 따라서 패키지에는 호출 응용 프로그램이 패키지에 필요한 특정 구성 및 로깅 테이블을 포함해야합니다.

내 문제는 구성을 가져오고 로깅을 수행하는 최대 절전 모드 메서드를 작성하기 위해 최대 절전 모드 특정 DOA 개체를 알아야한다는 것입니다. 문제는 이러한 개체가 특정 응용 프로그램 데이터베이스 매핑을 만들 때 생성된다는 것입니다.

+0

문제가있는 곳을 볼 수 없습니다. 엔티티는 단지 클래스입니다. DAO는 엔티티와 표준 JPA 클래스 및 메소드를 사용하는 클래스 일뿐입니다. jar 파일에 패키지화하고 클라이언트 응용 프로그램에서 모든 것을 구성하게합니다 (DataSource, EntityManager 등). –

답변

0

우리는 그래서 여기에 우리가 무엇을, 비슷한 상황에 있습니다

  1. 모든 개체는 우리의 라이브러리에 포함되어 있으며, 따라서 DAO는 그 실체의 전체 knowlegde 있습니다.
  2. 응용 프로그램에서 엔티티에 더 많은 필드가 필요한 경우 기본 엔티티를 하위 클래스로 분류하고 해당 DAO를 하위 클래스로 지정합니다 (제네릭을 사용하여 매개 변수화 됨).
  3. 라이브러리에는 persistence.xml이 포함되어 있지 않지만 Google의 애플리케이션은 <jar-file> 요소를 사용하여 라이브러리 jar를 나열하는 라이브러리를 정의합니다. 이 기능을 사용하려면 모든 DAO가 동일한 지속성 단위 (즉, persistence.xml)를 사용해야합니다.
  4. 응용 프로그램은 라이브러리에 테이블 정의를 제공해야하지만 XML 파일 (여기서는 orm.xml)을 사용하여 덮어 쓸 수 있습니다. 해당 파일은 persistence.xml에 정의되어 있습니다.

물론 애플리케이션 특정 코드로 라이브러리를 확장하지 않아도 복잡성을 줄일 수 있습니다. 이 경우 persistence.xml을 lib에 넣고 다른 억지력 장치 등을 사용할 수 있습니다.

+0

감사합니다. 정확히 내가 알고 싶었던 것 이상. 나는 엔티티를 확장 할 필요가 있을지는 모르겠지만 엔티티를 확장 할 필요가 있다는 것을 알기에 매우 좋습니다. – likenoother

0

DAO를 생성 할 필요가 없습니다. 매핑과 함께 사전에 DAO를 만들고 모듈과 함께 패키지 할 수 있습니다. 그런 다음, 각 사이트에서 필수 DB 테이블을 작성하여 맵핑을 준수해야합니다 (또는 사실 맵핑에서 자동 생성 될 수 있음).

+0

감사합니다. 신속하고 유용한 응답을 감사하십시오. – likenoother

관련 문제