2017-10-12 1 views
0

여러 EJB 모듈이 있고 각 모듈에는 데이터베이스의 기본 데이터가 필요하며 일부 디렉토리 또는 파일이 필요합니다.EJB 모듈 시작시 일부 코드를 실행하는 방법

@Startup @singleton EJB를 만들면 작업을 수행 하겠지만 올바른 방법일까요? ejb는 시작시에만 사용하더라도 메모리에 남아있게됩니다.

답변

1

예, @Startup은 @Stateless와 함께 작동하지 않으므로 시작 싱글 톤 bean을 사용하는 것이 일반적으로 초기화를 수행하는 올바른 방법입니다. 데이터베이스를 관리 할 수있는, 이것은 분명히 단점이있다

<property name="javax.persistence.sql-load-script-source" 
     value="META-INF/sql/data.sql" /> 

: 데이터베이스에 데이터를 삽입 할 경우

, 또 다른 옵션은 persistence.xml을하여 SQL 스크립트를 실행하는 것입니다 Java 코드로 삽입합니다. 자세한 내용은 여기를 참조하십시오 http://docs.oracle.com/javaee/7/tutorial/persistence-intro005.htm

당신이 EJB를 (그리고 싱글)에 대한 자세한 내용을 읽으려면 여기를 참조 : http://download.oracle.com/otn-pub/jcp/ejb-3.1-fr-eval-oth-JSpec/ejb-3_1-fr-spec.pdf

+0

나는이 방법으로 그것을했다. 나는 sql 파일과 다른 스크립트, json 또는 속성 파일을 meta-inf에 가지고 있지만 persistence.xml은 다른 아카이브에 있습니다. 표준 영속 단위 이름이 있으므로 엔티티 관리자를 삽입하고 행 단위로 파일을 읽는 네이티브 쿼리를 실행할 수 있습니다.이 방식으로 SQL 쿼리가 모듈과 함께 이동하고 jdbc 연결에 제한이 없으며 유일한 제약 조건은 영속 단위 이름 –

관련 문제