Ask Your Question
0

DB에서 오브젝트 검색관련해서 문의드립니다.

asked 2019-05-22 12:26:52 +0900

simpler gravatar image

updated 2019-05-22 12:27:20 +0900

ORM Part에서 (고급) db에서 오브젝트 검색 예제인 레벨 100 이상의 유저 검색후 레벨 다운 처리를 작성중인데요. 예제와 동일하게 작성하였으나 빌드시 아래 처럼 에러가 납니다. event_handlers.cc:20:53: error: template argument 1 is invalid 1> void OnSelected(const Ptr < std::set<object::id> &object_ids) {

edit retag flag offensive close merge delete

Comments

ORM의 특정 필들를 select 하는 경우 object_id 만 얻어 오는것으로 보이는데요., 혹시 다른 필드의 값도 함께 얻어오는 방법도 있을까요?

simpler gravatar imagesimpler ( 2019-05-22 15:07:03 +0900 )edit

2 answers

Sort by » oldest newest most voted
0

answered 2019-05-22 15:36:55 +0900

simpler gravatar image

만약 ORM 구조가 아래 와 같고

"Character": { "Level" : "Integer64", "Invite" : "<string(64), inviteinfo=""> Foreign" }, "InviteInfo": { "Sender": "String(64)", "Recipient": "String(64)" }

InviteInfo::SelectByRecipient(Object::kEqualTo, "Recipient" , function ) 실행한다고 가정하다면 InviteInfo 테이블에서 얻어지는 object_id 값이 아닌 Character의 object_id 값을 알고자 합니다. orm을 통해서 조회가 가능할지요?

edit flag offensive delete link more

Comments

안녕하세요. 아이펀팩토리입니다. 올려 주신 것과 같은 정의에서 Character->inviteinfo 와 같은 종속관계일 때, inviteinfo 로부터 Character 를 역으로 참조할 수 있는 방법은 제공하고 있지 않습니다. 구현상 말씀하신 것과 같은 참조관계가 필요하시다면, InviteInfo 객체에 Character 객체를 foreign 멤버로 포함시켜 주시는 방법을 생각 해 볼 수 있겠습니다.

jwlee gravatar imagejwlee ( 2019-05-22 15:54:04 +0900 )edit

먼저, InviteInfo 객체를 만드실 때, Character 객체의 ID는 직접 저장을 해 주셔야 합니다. 이렇게 DB에 저장했던 InviteInfo 객체를 가져온 후에 - invite_info->GetCharacter(); << Character 객체의 오브젝트 아이디. - Ptr<character> character = invite_info->FetchCharacter(); << Character 객체 획득. 와 같이 사용하시면 됩니다.

jwlee gravatar imagejwlee ( 2019-05-23 12:40:12 +0900 )edit

잘못 눌러 윗 질문이 삭제가 되었네요. InviteInfo 의 object_ids들을 얻게 되면, InviteInfo::Fetch(object_id) 를 통해서 Character의 id를 얻어와서 Character 겍체를 사용해야 하는거군요.. 답변 감사합니다.

simpler gravatar imagesimpler ( 2019-05-23 14:32:18 +0900 )edit

또는 반복문 없이 object_ids 로 부터 여러 InviteInfo 객체를 한번에 가져오는 인터페이스를 사용하셔도 됩니다. https://www.ifunfactory.com/engine/do...

jwlee gravatar imagejwlee ( 2019-05-23 14:38:56 +0900 )edit

제공되는 FetchRandomly 함수는 어떻게 동작을 하는지요? 입력 count 값 만큼 얻어오지를 않고 있습니다.

simpler gravatar imagesimpler ( 2019-05-24 14:13:05 +0900 )edit
0

answered 2019-05-22 12:30:10 +0900

Seunghyun gravatar image

안녕하세요. 아이펀팩토리입니다.

해당 문서에 오타가 있는 것을 확인 하였습니다. 아래와 같이 수정하여 사용 부탁드립니다.

const Ptr<std::set<Object::Id> => const Ptr<std::set<Object::Id>>

감사합니다.

edit flag offensive delete link more

Comments

예제 부분에서 boost::bind 부분에서 에러나서 --> Event::Invoke(bind<void>(level_down, object_id)); 이런게 하니 에러가 안나네요

simpler gravatar imagesimpler ( 2019-05-22 15:02:37 +0900 )edit

매뉴얼의 해당 내용 확인해서 수정하도록 하겠습니다. 감사합니다.

jwlee gravatar imagejwlee ( 2019-05-22 15:06:07 +0900 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2019-05-22 12:26:52 +0900

Seen: 56 times

Last updated: May 22