[Dbix-class] How to build a "good" object with deep nested prefetched rows from raw data?

Dmitry L. dim0xff at gmail.com
Thu May 2 11:19:39 GMT 2013


QWN0dWFsbHkgY2F0ZWdvcmllcyAtIGl0IHdhcyBqdXN0IGFuIGV4YW1wbGUuCkluIG15IHByb2pl
Y3QgSSB1c2UgYSBzdG9yZWQgcHJvY2VkdXJlcyBpbiBEQiB3aXRoIHJlY3Vyc2l2ZSBxdWVyaWVz
IGFuZApjb21wbGV4IGxvZ2ljLiBTbyBqdXN0IHVzaW5nIERCSUMgaXMgYSBsaXR0bGUgYml0IGhh
cmQgaW4gbXkgY2FzZS4gQW5kCnByb2JsZW0gaXMgYSBidWlsZGluZyBhIERCSUMgb2JqZWN0IHdp
dGggdXNpbmcgYSBwcmVkZWZpbmVkIGRhdGEuCgoKT24gMiBNYXkgMjAxMyAxNDo1NywgT2xlZyBL
b3N0eXVrIDxjdWIudWFuaWNAZ21haWwuY29tPiB3cm90ZToKCj4gVGhlcmUgYXJlIGFscmVhZHkg
c2V2ZXJhbCByZWFkeSB0byB1c2Ugc29sdXRpb25zIHRvCj4gc3RvcmUgaGllcmFyY2hpY2FsIHN0
cnVjdHVyZXMgaW4gZGF0YWJhc2UgLSB3aHkgZG8geW91IHdhbnQgdG8gcmVpbnZlbnQgdGhlCj4g
d2hlZWw/Cj4gICBodHRwOi8vc2VhcmNoLmNwYW4ub3JnL2Rpc3QvREJJeC1DbGFzcy1UcmVlLwo+
ICAgaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9kaXN0L0RCSXgtQ2xhc3MtVHJlZS1Nb2JpdXMvCj4g
ICBodHRwOi8vc2VhcmNoLmNwYW4ub3JnL2Rpc3QvREJJeC1DbGFzcy1UcmVlLU5lc3RlZFNldC8K
Pgo+Cj4KPgo+IDIwMTMvNS8yIERtaXRyeSBMLiA8ZGltMHhmZkBnbWFpbC5jb20+Cj4KPj4gSGVs
bG8hCj4+Cj4+IE9WRVJWSUVXCj4+IEltYWdpbmUgdGhhdCB3ZSBoYXZlIHNvbWUgZGF0YSBpbiBE
Qiwgd2hpY2ggY2FuIGJlIHJlcHJlc2VudGVkIGluIG5lc3RlZAo+PiBzdHJ1Y3R1cmUgRWcuIGNh
dGVnb3JpZXMgdHJlZToKPj4gQ1JFQVRFIFRBQkxFIGNhdGVnb3JpZXMgKAo+PiAgICAgaWQgSU5U
IE5PVCBOVUxMLAo+PiAgICAgcGFyZW50X2lkIElOVCBOVUxMICwKPj4gICAgIHRpdGxlIFRFWFQs
Cj4+ICAgICBDT05TVFJBSU5UICJzdWJjYXRlZ29yaWVzIiBGT1JFSUdOIEtFWSgicGFyZW50X2lk
IikgUkVGRVJFTkNFUwo+PiAiY2F0ZWdvcmllcyIoImlkIikKPj4gKTsKPj4KPj4gUFJPQkxFTQo+
PiBOb3cgd2Ugd2FudCB0byByZXRyaWV2ZSBhbGwgc3ViY2F0ZWdvcmllcyBmb3IgY2F0ZWdvcnko
aWQgPSAkaWQpIHdpdGggM3JkCj4+IG5lc3RlZCBsZXZlbC4gRm9yIGV4YW1wbGUgd2Ugd2lsbCB3
YW50IHJldHJpZXZlIHRoZSBuZXh0IHN0cnVjdHVyZToKPj4gQ2F0ZWdvcnkoaWQ9JGlkKQo+PiAt
IENhdGVnb3J5IDEoaWQ9aWQxLCBwYXJlbnRfaWQ9JGlkKQo+PiAtIC0gQ2F0ZWdvcnkgMS0xKGlk
PWlkMywgcGFyZW50X2lkPWlkMSkKPj4gLSAtIENhdGVnb3J5IDEtMihpZD1pZDQsIHBhcmVudF9p
ZD1pZDEpCj4+IC0gLSBDYXRlZ29yeSAxLTMoaWQ9aWQ1LCBwYXJlbnRfaWQ9aWQxKQo+PiAtIENh
dGVnb3J5IDIoaWQ9aWQyLCBwYXJlbnRfaWQ9JGlkKQo+PiAtIC0gQ2F0ZWdvcnkgMi0xKGlkPWlk
NiwgcGFyZW50X2lkPWlkMikKPj4KPj4gSW4gb3VyIGNvZGUgd2UgY2FuIGRvIHRoaXMgdmllIERC
SXg6OkNsYXNzCj4+ICRycyA9ICRzY2hlbWEKPj4gICAgIC0+cmVzdWx0c2V0KCdDYXRlZ29yaWVz
JykKPj4gICAgIC0+c2VhcmNoKAo+PiAgICAgICAgIHsKPj4gICAgICAgICAgICAgJ21lLmlkJyA9
PiRpZAo+PiAgICAgICAgIH0sCj4+ICAgICAgICAgewo+PiAgICAgICAgICAgICBwcmVmZXRjaCA9
PiB7J3N1YmNhdGVnb3JpZXMnID0+ICdzdWJjYXRlZ29yaWVzJ30KPj4gICAgICAgICB9Cj4+ICAg
ICApOwo+Pgo+PiBBbmQgbm93IHdlIGNhbiBjYWxsIHNvbWV0aGluZyBsaWtlCj4+ICRycy0+Zmly
c3QtPnN1YmNhdGVnb3JpZXMtPmZpcnN0LT5zdWJjYXRlZ29yaWVzLT5maXJzdC0+Li4uLT50aXRs
ZQo+Pgo+PiBBbmQgd2Ugd2lsbCBnZXQgcXVlcnkgbGlrZSAuLi4gTEVGVCBKT0lOIC4uLiBMRUZU
IEpPSU4gLi4uCj4+IElmIHdlIHdhbnQgdGhlIDR0aCBuZXN0ZWQgbGV2ZWwsIHdlIHdpbGwgZ2V0
IChMRUZUIEpPSU4pIHggMy4KPj4gSWYgd2Ugd2FudCB0aGUgTXRoIG5lc3RlZCBsZXZlbCwgd2Ug
d2VsbCBnZXQgKExFRlQgSk9JTikgeCBNLgo+Pgo+PiBTT0xWRQo+PiBTbywgdG8gc29sdmUgdGhp
cyBtdWx0aXBsZSBMRUZUIEpPSU4gd2UndmUgY3JlYXRlZCBzb21lIHN0b3JlZCBwcm9jZWR1cmUK
Pj4gaW4gREIsIHdoaWNoIHJldHVybnMgdGhlIHNhbWUgZGF0YSBhcyBtdWx0aXBsZSBMRUZUIEpP
SU4KPj4gKGNhdGVnb3J5X2Rlc2NlbmRhbnRzKGlkKSkuIGJ1dCByZXR1cm5zIGl0IHZlcnkgZmFz
dC4KPj4KPj4gUVVFU1RJT04KPj4gSG93IGNhbiBJIGNvbnZlcnQgcmF3IGRhdGEsIHdoaWNoIGNv
dWxkIGJlIHJldHVybmVkIGJ5IGNhbGxpbmcKPj4gY2F0ZWdvcnlfZGVzY2VuZGFudHMoJGlkKSwg
dG8gYSAiZ29vZCIgREJJeDo6Q2xhc3Mgb2JqZWN0Pwo+PiBJIHdhbnQgdG8gY2FsbCBjYXRlZ29y
eV9kZXNjZW5kYW50cygkaWQpLCBhbmQgdGhlbiBJIHdhbnQgdG8gdXNlCj4+IHNvbWV0aGluZyBs
aWtlIHRoaXM6Cj4+ICRycy0+Zmlyc3QtPnN1YmNhdGVnb3JpZXMtPmZpcnN0LT5zdWJjYXRlZ29y
aWVzLT5maXJzdC0+Li4uLT50aXRsZQo+Pgo+PiBUaGFuayB5b3UhCj4+Cj4+IC0tCj4+IC8vd2Jy
LCBEbWl0cnkgTC4KPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KPj4gTGlzdDogaHR0cDovL2xpc3RzLnNjc3lzLmNvLnVrL2NnaS1iaW4vbWFpbG1h
bi9saXN0aW5mby9kYml4LWNsYXNzCj4+IElSQzogaXJjLnBlcmwub3JnI2RiaXgtY2xhc3MKPj4g
U1ZOOiBodHRwOi8vZGV2LmNhdGFseXN0LnBlcmwub3JnL3JlcG9zL2Jhc3QvREJJeC1DbGFzcy8K
Pj4gU2VhcmNoYWJsZSBBcmNoaXZlOgo+PiBodHRwOi8vd3d3Lmdyb2tiYXNlLmNvbS9ncm91cC9k
Yml4LWNsYXNzQGxpc3RzLnNjc3lzLmNvLnVrCj4+Cj4KPgo+Cj4gLS0KPiBTaW5jZXJlbHkgeW91
cnMsCj4gT2xlZyBLb3N0eXVrIChDVUItVUFOSUMpCj4KPiBfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwo+IExpc3Q6IGh0dHA6Ly9saXN0cy5zY3N5cy5jby51
ay9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vZGJpeC1jbGFzcwo+IElSQzogaXJjLnBlcmwub3Jn
I2RiaXgtY2xhc3MKPiBTVk46IGh0dHA6Ly9kZXYuY2F0YWx5c3QucGVybC5vcmcvcmVwb3MvYmFz
dC9EQkl4LUNsYXNzLwo+IFNlYXJjaGFibGUgQXJjaGl2ZToKPiBodHRwOi8vd3d3Lmdyb2tiYXNl
LmNvbS9ncm91cC9kYml4LWNsYXNzQGxpc3RzLnNjc3lzLmNvLnVrCj4KCgoKLS0gCi8vd2JyLCBE
bWl0cnkgTC4KLS0tLS0tLS0tLS0tLS0gbmV4dCBwYXJ0IC0tLS0tLS0tLS0tLS0tCkFuIEhUTUwg
YXR0YWNobWVudCB3YXMgc2NydWJiZWQuLi4KVVJMOiBodHRwOi8vbGlzdHMuc2NzeXMuY28udWsv
cGlwZXJtYWlsL2RiaXgtY2xhc3MvYXR0YWNobWVudHMvMjAxMzA1MDIvMjRlMzk0ZGYvYXR0YWNo
bWVudC0wMDAxLmh0bQo=


More information about the DBIx-Class mailing list