2012-11-14 3 views
2

저는 평생 포틀릿을 개발 중입니다. 서비스 빌더를 사용합니다. 문제는 엔터티 필드에서 companyID와 groupID를 사용해야한다는 것입니다. 이 들판을 갖고 싶지 않으면 어떻게해야합니까? 내가 사용하지 않으면 resourceLocalService.addResources() 메서드를 어떻게 사용할 수 있습니까?Liferay Service Builder에 companyID와 groupID가 항상 필요합니까?

+0

Liferay 6.1을 사용하고 있습니까? i (6.0.6 사용)는 내가 만든 많은 서비스에서 언급 한 ID 중 하나를 사용하지 않았기 때문에. 서비스에서 당신은 ** LocalServiceImpl과 같은 방법을 만들고 원하는 것을 구현할 수 있어야합니다. 완료했을 때 서비스를 다시 구축하고 배포 나는 6.1에서 정직하게 변한 사실을 알지 못합니다. –

답변

6

필수 항목은 아니지만 편리합니다.

Liferay에는 사용 권한, 사용자, 문서 라이브러리와 같은 많은 추가 서비스가 있습니다. 이러한 서비스는 거의 항상 포털 인스턴스로 범위가 지정됩니다. 예를 들어 사용자는 companyId으로 추적되는 인스턴스로 범위가 지정됩니다. 일부는 문서 라이브러리와 같은 그룹으로 범위가 지정됩니다.

사용하려는 Liferay 서비스 및 해당 서비스가 작동하는 범위에 따라 사용중인 서비스를 호출 할 때 쉽게 조회 할 수 있도록 해당 값을 저장하는 것이 편리합니다.

+0

합리적인 묘사 - 모델 당 포털 인스턴스 데이터의 복제가 왜 그렇게 많은지 항상 궁금해했습니다. – Olaseni

1

DBA 팀 은 테이블에이 두 개의 외래 키 필드 인을 지정하지 않았지만 어쨌든 추가합니다. DBA는 테이블을 설계 할 때 Liferay의 내부 동작을 알지 못했기 때문에이를 수행합니다.

이 필드는 Liferay 내부에 있고 인스턴스화 할 수없는 포틀릿에서 컨텍스트 목적으로 사용됩니다. CompanyId는 사용자가 탐색 한 포털 인스턴스에 해당하며 groupId는 사용자가 탐색 한 커뮤니티 또는 조직에 해당합니다.

모든 필드에서이 필드 값을 매개 변수로 사용하므로 포틀릿은 다른 포털, 커뮤니티 및 조직에서 서로 다른 데이터를 갖게됩니다.

관련 문제