Knowledge

Composite entity pattern

Source đź“ť

80:
According to Oracle description of the pattern, consequences include eliminating inter-entity relationships, improving manageability by reducing entity beans, improving network performance, reducing database schema dependency, increasing object granularity, facilitating composite transfer object
62:
A coarse-grained object is an object with its own life cycle manages its own relationships to other objects. It can be an object contained in the composite entity, or, composite entity itself can be the coarse-grained object which holds dependent objects.
39: 71:
It is an object, which can contain other dependent objects (there may be a tree of objects within the composite entity), that depends on the coarse-grained object and has its life cycle managed by the coarse-grained object.
26:
and it is used to model, represent, and manage a set of interrelated persistent objects rather than representing them as individual fine-grained entity beans, and also a composite entity bean represents a graph of objects.
120:
Sample code for a Professional Service Automation application (PSA) in which the resource object is implemented via composite entity pattern, may look like as follows (entity implements coarse-grained object):
104:, implementation of the ejbStore() method needs to be smart enough to avoid issuing all the updates required to persist the entire state of the object, unless the data has changed in all the persistent objects. 35:
There are a number of strategies to implement composite entity pattern. This pattern mainly composites of composite entity, coarse-grained object, and dependent objects.
54:
Composite entity is the coarse-grained entity bean which may be the coarse-grained object, or may contain a reference to the coarse-grained object.
108:
Composite entity pattern can only be implemented using BMP or by adding more hand-coded persistence logic to container managed persistence (CMP)
38: 2503: 3028: 3136: 3053: 20: 3001: 2826: 2625: 2719: 2849: 2809: 2496: 2819: 2814: 3094: 2932: 101: 97:
materializing all the data in a coarse-grained entity whenever it is accessed, is unacceptably expensive
2709: 2917: 2912: 2739: 2445: 2957: 2889: 2539: 2489: 2859: 2831: 2769: 2754: 2734: 2670: 2512: 23: 2836: 2764: 2714: 2549: 3115: 3018: 2864: 2844: 2789: 2927: 2884: 2879: 2869: 2779: 2413: 8: 2967: 2952: 2947: 2804: 2689: 2635: 3089: 3068: 2977: 2874: 2724: 2617: 2569: 2531: 2759: 2602: 2592: 2587: 2559: 2554: 3058: 2799: 2744: 2665: 2655: 2645: 2640: 3048: 2994: 2972: 2749: 2704: 2675: 2650: 2630: 2577: 2544: 2520: 93:. This involves more work for developers, and create some problems as follows: 3033: 2894: 2597: 2582: 3130: 2854: 2699: 2660: 2607: 3110: 3073: 2962: 2937: 2729: 2481: 3063: 3038: 3023: 2942: 2774: 89:
The fatal drawback is the requirement of bean-managed persistent (BMP)
3043: 109: 90: 81:
creation and overhead of multi-level dependent object graphs.
112:. These both approaches reduce the maintainability. 1674:// copy values from Transfer Object into entity bean 2475:. Indianapolis: Wiley Publishing, Inc. p. 290. 3128: 939:// Remove the resource from the persistent store 360:// Collection of BlockOutTime Dependent objects 2040:// similar to addBlockOutTime() implementation 2497: 2473:Expert One-on-One J2EE Design and Development 1737:// If skillSets is not loaded, load it first. 1311:// Load other dependent objects, if necessary 49: 2511: 2232:// compare key values to locate BlockOutTime 1950:// BlockOutTimeTO already exists, cannot add 1719:// Method to get dependent Transfer Objects 375:// Collection of SkillSet Dependent objects 2504: 2490: 2265:// replace old BlockOutTimeTO with new one 1740:// See Lazy Load strategy implementation. 1533:// Method to Get Resource Transfer Object 2440: 2438: 2436: 2434: 2432: 2430: 2428: 1551:// create a new Resource Transfer Object 57: 2470: 2446:"Core J2EE Patterns - Composite Entity" 3129: 2464: 1758:// other get and set methods as needed 42:Composite entity pattern class diagram 2485: 2425: 1797:// Note: moreBOTs is a collection of 405:// Entity Bean methods implementation 1407:// Store dependent objects as needed 66: 2388:// similar to updateBlockOutTime... 2262:// Found BlockOutTime in collection 1908:// add BlockOutTimeTO to collection 13: 37: 14: 3148: 3002:Enterprise Integration Patterns 1764:// Entity bean business methods 75: 1263:// load the resource info from 115: 1: 2419: 1386:// Store resource information 138:corepatterns.apps.psa.core.* 84: 30: 7: 3095:Portland Pattern Repository 2407: 762:// Remove dependent objects 147:corepatterns.apps.psa.dao.* 10: 3153: 50:Composite entity component 3103: 3082: 3011: 2986: 2903: 2788: 2688: 2616: 2568: 2530: 2519: 1800:// BlockOutTimeTO objects 129:corepatterns.apps.psa.ejb 3137:Software design patterns 2720:Event-based asynchronous 2513:Software design patterns 2280://modified old dependent 123: 2626:Chain of responsibility 729:ObjectNotFoundException 24:Software design pattern 2765:Scheduled-task pattern 2715:Double-checked locking 43: 3116:Architectural pattern 3019:Christopher Alexander 2295://not a new dependent 2076:BlockOutTimeException 1959:BlockOutTimeException 1791:BlockOutTimeException 1464:BlockOutTimeException 1029:BlockOutTimeException 58:Coarse-grained object 41: 2928:Dependency injection 2885:Inversion of control 2880:Data transfer object 2780:Thread-local storage 2471:Johnson, R. (2003). 2414:Data transfer object 2933:Intercepting filter 2382:CommitmentException 1578:// copy all values 1488:"Reason:" 1446:"Reason:" 1350:"Reason:" 1053:"Reason:" 1011:"Reason:" 678:"Reason:" 567:ejbFindByPrimaryKey 531:"Reason:" 3090:The Hillside Group 2875:Data access object 2725:Guarded suspension 2710:Binding properties 2058:updateBlockOutTime 1893:blockOutTimeExists 1143:unsetEntityContext 888:getBlockOutTimeDAO 633:selectByPrimaryKey 44: 3124: 3123: 2918:Business delegate 2850:Publish–subscribe 2684: 2683: 2034:SkillSetException 1422:SkillSetException 987:ResourceException 67:Dependent objects 3144: 2923:Composite entity 2800:Front controller 2540:Abstract factory 2528: 2527: 2506: 2499: 2492: 2483: 2482: 2477: 2476: 2468: 2462: 2461: 2459: 2457: 2442: 2401: 2398: 2395: 2392: 2389: 2386: 2383: 2380: 2377: 2374: 2371: 2368: 2365: 2362: 2359: 2356: 2353: 2350: 2347: 2344: 2341: 2338: 2335: 2332: 2329: 2326: 2323: 2320: 2317: 2314: 2311: 2308: 2305: 2302: 2299: 2296: 2293: 2290: 2287: 2284: 2281: 2278: 2275: 2272: 2269: 2266: 2263: 2260: 2257: 2254: 2251: 2248: 2245: 2242: 2239: 2236: 2233: 2230: 2227: 2224: 2221: 2218: 2215: 2212: 2209: 2206: 2203: 2200: 2197: 2194: 2191: 2188: 2185: 2182: 2179: 2176: 2173: 2170: 2167: 2164: 2161: 2158: 2155: 2152: 2149: 2146: 2143: 2140: 2137: 2134: 2131: 2128: 2125: 2122: 2119: 2116: 2113: 2110: 2107: 2104: 2101: 2098: 2095: 2092: 2089: 2086: 2083: 2080: 2077: 2074: 2071: 2068: 2065: 2062: 2059: 2056: 2053: 2050: 2047: 2044: 2041: 2038: 2035: 2032: 2029: 2026: 2023: 2020: 2017: 2014: 2011: 2008: 2005: 2002: 1999: 1996: 1993: 1990: 1987: 1984: 1981: 1978: 1975: 1972: 1969: 1966: 1963: 1960: 1957: 1954: 1951: 1948: 1945: 1942: 1939: 1936: 1933: 1930: 1927: 1924: 1921: 1918: 1915: 1912: 1909: 1906: 1903: 1900: 1897: 1894: 1891: 1888: 1885: 1882: 1879: 1876: 1873: 1870: 1867: 1864: 1861: 1858: 1855: 1852: 1849: 1846: 1843: 1840: 1837: 1834: 1831: 1828: 1825: 1822: 1819: 1816: 1813: 1810: 1807: 1804: 1801: 1798: 1795: 1792: 1789: 1786: 1783: 1780: 1777: 1774: 1773:addBlockOutTimes 1771: 1768: 1765: 1762: 1759: 1756: 1753: 1750: 1747: 1744: 1741: 1738: 1735: 1732: 1729: 1728:getSkillSetsData 1726: 1723: 1720: 1717: 1714: 1711: 1708: 1705: 1702: 1699: 1696: 1693: 1690: 1687: 1684: 1681: 1678: 1675: 1672: 1669: 1666: 1663: 1660: 1657: 1654: 1651: 1648: 1645: 1642: 1639: 1636: 1633: 1630: 1627: 1624: 1621: 1618: 1615: 1612: 1609: 1606: 1603: 1600: 1597: 1594: 1591: 1588: 1585: 1582: 1579: 1576: 1573: 1570: 1567: 1564: 1561: 1558: 1555: 1552: 1549: 1546: 1543: 1540: 1537: 1534: 1531: 1528: 1525: 1522: 1519: 1516: 1513: 1510: 1507: 1504: 1501: 1498: 1495: 1492: 1489: 1486: 1483: 1480: 1477: 1474: 1471: 1468: 1465: 1462: 1459: 1456: 1453: 1450: 1447: 1444: 1441: 1438: 1435: 1432: 1429: 1426: 1423: 1420: 1417: 1414: 1411: 1408: 1405: 1402: 1399: 1396: 1393: 1390: 1387: 1384: 1381: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1357: 1354: 1351: 1348: 1345: 1342: 1339: 1336: 1333: 1330: 1327: 1324: 1321: 1318: 1315: 1312: 1309: 1306: 1303: 1300: 1297: 1294: 1291: 1288: 1285: 1282: 1279: 1276: 1273: 1270: 1267: 1264: 1261: 1258: 1255: 1252: 1249: 1246: 1243: 1240: 1237: 1234: 1231: 1228: 1225: 1222: 1219: 1216: 1213: 1210: 1207: 1204: 1201: 1198: 1195: 1192: 1189: 1186: 1183: 1180: 1177: 1174: 1171: 1168: 1165: 1162: 1159: 1156: 1153: 1150: 1147: 1144: 1141: 1138: 1135: 1132: 1129: 1126: 1123: 1120: 1117: 1114: 1111: 1108: 1105: 1102: 1099: 1098:setEntityContext 1096: 1093: 1090: 1087: 1084: 1081: 1078: 1075: 1072: 1069: 1066: 1063: 1060: 1057: 1054: 1051: 1048: 1045: 1042: 1039: 1036: 1033: 1030: 1027: 1024: 1021: 1018: 1015: 1012: 1009: 1006: 1003: 1000: 997: 994: 991: 988: 985: 982: 979: 976: 973: 970: 967: 964: 961: 958: 955: 952: 949: 946: 943: 940: 937: 934: 931: 928: 925: 922: 919: 916: 913: 910: 907: 904: 901: 898: 895: 892: 889: 886: 883: 880: 877: 874: 871: 868: 865: 862: 859: 856: 853: 850: 847: 844: 841: 838: 835: 832: 829: 826: 823: 820: 817: 814: 811: 808: 805: 802: 799: 796: 793: 790: 787: 784: 781: 778: 775: 772: 769: 766: 763: 760: 757: 754: 751: 748: 745: 742: 739: 736: 733: 730: 727: 724: 721: 718: 715: 712: 709: 706: 703: 700: 697: 694: 691: 688: 685: 682: 679: 676: 673: 670: 667: 664: 661: 658: 655: 652: 649: 646: 643: 640: 637: 634: 631: 628: 625: 622: 619: 616: 613: 610: 607: 604: 601: 598: 595: 592: 589: 586: 583: 580: 577: 574: 571: 568: 565: 562: 559: 556: 553: 550: 547: 544: 541: 538: 535: 532: 529: 526: 523: 520: 517: 514: 511: 508: 505: 502: 499: 496: 493: 490: 487: 484: 481: 478: 475: 472: 469: 466: 463: 460: 457: 454: 451: 448: 445: 442: 439: 436: 433: 430: 427: 424: 421: 418: 415: 412: 409: 406: 403: 400: 397: 394: 391: 388: 385: 382: 379: 376: 373: 370: 367: 364: 361: 358: 355: 352: 349: 346: 343: 340: 337: 334: 331: 328: 325: 322: 319: 316: 313: 310: 307: 304: 301: 298: 295: 292: 289: 286: 283: 280: 277: 274: 271: 268: 265: 262: 259: 256: 253: 250: 247: 244: 241: 238: 235: 232: 229: 226: 223: 220: 217: 214: 211: 208: 205: 202: 199: 196: 193: 190: 187: 184: 181: 178: 175: 172: 169: 166: 163: 160: 157: 154: 151: 148: 145: 142: 139: 136: 133: 130: 127: 17:Composite entity 3152: 3151: 3147: 3146: 3145: 3143: 3142: 3141: 3127: 3126: 3125: 3120: 3099: 3078: 3069:Douglas Schmidt 3049:Ward Cunningham 3007: 2995:Design Patterns 2982: 2973:Method chaining 2905: 2899: 2860:Service locator 2791: 2784: 2755:Read–write lock 2691: 2680: 2671:Template method 2612: 2564: 2522: 2515: 2510: 2480: 2469: 2465: 2455: 2453: 2444: 2443: 2426: 2422: 2410: 2403: 2402: 2399: 2396: 2393: 2390: 2387: 2384: 2381: 2378: 2375: 2372: 2369: 2366: 2363: 2360: 2357: 2354: 2351: 2348: 2345: 2342: 2339: 2336: 2333: 2330: 2327: 2324: 2321: 2318: 2315: 2312: 2309: 2306: 2303: 2300: 2297: 2294: 2291: 2288: 2285: 2282: 2279: 2276: 2273: 2270: 2267: 2264: 2261: 2258: 2255: 2252: 2249: 2246: 2243: 2240: 2237: 2234: 2231: 2228: 2225: 2222: 2219: 2216: 2213: 2210: 2207: 2204: 2201: 2198: 2195: 2192: 2189: 2186: 2183: 2180: 2177: 2174: 2171: 2168: 2165: 2162: 2159: 2156: 2153: 2150: 2147: 2144: 2141: 2138: 2135: 2132: 2129: 2126: 2123: 2120: 2117: 2114: 2111: 2108: 2105: 2102: 2099: 2096: 2093: 2090: 2087: 2084: 2081: 2078: 2075: 2072: 2069: 2066: 2063: 2060: 2057: 2054: 2051: 2048: 2045: 2042: 2039: 2036: 2033: 2030: 2027: 2024: 2021: 2018: 2015: 2012: 2009: 2006: 2003: 2000: 1997: 1994: 1991: 1988: 1985: 1982: 1979: 1976: 1973: 1970: 1967: 1964: 1961: 1958: 1955: 1952: 1949: 1946: 1943: 1940: 1937: 1934: 1931: 1928: 1925: 1922: 1919: 1916: 1913: 1910: 1907: 1904: 1901: 1898: 1895: 1892: 1889: 1886: 1883: 1880: 1877: 1874: 1871: 1868: 1865: 1862: 1859: 1856: 1853: 1850: 1847: 1844: 1841: 1838: 1835: 1832: 1829: 1826: 1823: 1820: 1817: 1814: 1811: 1808: 1805: 1802: 1799: 1796: 1793: 1790: 1787: 1784: 1781: 1778: 1775: 1772: 1769: 1766: 1763: 1760: 1757: 1754: 1751: 1748: 1745: 1742: 1739: 1736: 1733: 1730: 1727: 1724: 1721: 1718: 1715: 1712: 1709: 1706: 1703: 1700: 1697: 1694: 1691: 1688: 1685: 1682: 1679: 1676: 1673: 1670: 1667: 1664: 1661: 1658: 1656:setResourceData 1655: 1652: 1649: 1646: 1643: 1640: 1637: 1634: 1631: 1628: 1625: 1622: 1619: 1616: 1613: 1610: 1607: 1604: 1601: 1598: 1595: 1592: 1589: 1586: 1583: 1580: 1577: 1574: 1571: 1568: 1565: 1562: 1559: 1556: 1553: 1550: 1547: 1544: 1541: 1538: 1535: 1532: 1529: 1526: 1523: 1520: 1517: 1514: 1511: 1508: 1505: 1502: 1499: 1496: 1493: 1490: 1487: 1484: 1481: 1478: 1475: 1472: 1469: 1466: 1463: 1460: 1457: 1454: 1451: 1448: 1445: 1442: 1439: 1436: 1433: 1430: 1427: 1424: 1421: 1418: 1415: 1412: 1409: 1406: 1403: 1401:getResourceData 1400: 1397: 1394: 1391: 1388: 1385: 1382: 1379: 1376: 1373: 1370: 1367: 1364: 1361: 1358: 1355: 1352: 1349: 1346: 1343: 1340: 1337: 1334: 1331: 1328: 1325: 1322: 1319: 1316: 1313: 1310: 1307: 1304: 1301: 1298: 1295: 1292: 1289: 1286: 1283: 1281:setResourceData 1280: 1277: 1274: 1271: 1268: 1265: 1262: 1259: 1256: 1253: 1250: 1247: 1244: 1241: 1238: 1235: 1232: 1229: 1226: 1223: 1220: 1217: 1214: 1211: 1208: 1205: 1202: 1199: 1196: 1193: 1190: 1187: 1184: 1181: 1178: 1175: 1172: 1169: 1166: 1163: 1160: 1157: 1154: 1151: 1148: 1145: 1142: 1139: 1136: 1133: 1130: 1127: 1124: 1121: 1118: 1115: 1112: 1109: 1106: 1103: 1100: 1097: 1094: 1091: 1088: 1085: 1082: 1079: 1076: 1073: 1070: 1067: 1064: 1061: 1058: 1055: 1052: 1049: 1046: 1043: 1040: 1037: 1034: 1031: 1028: 1025: 1022: 1019: 1016: 1013: 1010: 1007: 1004: 1001: 998: 995: 992: 989: 986: 983: 980: 977: 974: 971: 968: 965: 962: 959: 956: 953: 950: 947: 944: 941: 938: 935: 932: 929: 926: 923: 920: 917: 914: 912:blockouttimeDAO 911: 908: 905: 902: 899: 896: 894:blockouttimeDAO 893: 890: 887: 884: 882:blockouttimeDAO 881: 879:BlockOutTimeDAO 878: 875: 872: 869: 866: 863: 860: 857: 854: 851: 848: 845: 842: 839: 836: 833: 830: 827: 824: 821: 818: 815: 812: 809: 806: 803: 800: 797: 794: 791: 788: 785: 782: 779: 776: 773: 770: 767: 764: 761: 758: 755: 752: 749: 746: 743: 740: 737: 734: 731: 728: 725: 722: 719: 716: 713: 710: 707: 704: 701: 698: 695: 692: 689: 686: 683: 680: 677: 674: 671: 668: 665: 662: 659: 656: 653: 650: 647: 644: 641: 638: 635: 632: 629: 626: 623: 620: 617: 614: 611: 608: 605: 602: 599: 596: 593: 590: 587: 585:FinderException 584: 581: 578: 575: 572: 569: 566: 563: 560: 557: 554: 551: 548: 545: 542: 539: 536: 533: 530: 527: 524: 521: 518: 515: 512: 509: 506: 503: 500: 497: 494: 491: 488: 485: 482: 479: 476: 473: 470: 468:setResourceData 467: 464: 461: 458: 455: 452: 449: 446: 443: 440: 437: 434: 432:CreateException 431: 428: 425: 422: 419: 416: 413: 410: 407: 404: 401: 398: 395: 392: 389: 386: 383: 380: 377: 374: 371: 368: 365: 362: 359: 356: 353: 350: 347: 344: 341: 338: 335: 332: 329: 326: 323: 320: 317: 314: 311: 308: 305: 302: 299: 296: 293: 290: 287: 284: 281: 278: 275: 272: 269: 266: 263: 260: 257: 254: 251: 248: 245: 242: 239: 236: 233: 230: 227: 224: 221: 218: 215: 212: 209: 206: 203: 200: 197: 194: 191: 188: 185: 182: 179: 176: 173: 170: 167: 164: 161: 158: 155: 152: 149: 146: 143: 140: 137: 134: 131: 128: 125: 118: 87: 78: 69: 60: 52: 46: 33: 12: 11: 5: 3150: 3140: 3139: 3122: 3121: 3119: 3118: 3113: 3107: 3105: 3101: 3100: 3098: 3097: 3092: 3086: 3084: 3080: 3079: 3077: 3076: 3071: 3066: 3061: 3056: 3051: 3046: 3041: 3036: 3034:John Vlissides 3031: 3026: 3021: 3015: 3013: 3009: 3008: 3006: 3005: 2998: 2990: 2988: 2984: 2983: 2981: 2980: 2975: 2970: 2965: 2960: 2955: 2950: 2945: 2940: 2935: 2930: 2925: 2920: 2915: 2909: 2907: 2901: 2900: 2898: 2897: 2892: 2887: 2882: 2877: 2872: 2867: 2862: 2857: 2852: 2847: 2842: 2834: 2829: 2824: 2823: 2822: 2817: 2807: 2802: 2796: 2794: 2786: 2785: 2783: 2782: 2777: 2772: 2767: 2762: 2757: 2752: 2747: 2742: 2737: 2732: 2727: 2722: 2717: 2712: 2707: 2702: 2696: 2694: 2686: 2685: 2682: 2681: 2679: 2678: 2673: 2668: 2663: 2658: 2653: 2648: 2643: 2638: 2633: 2628: 2622: 2620: 2614: 2613: 2611: 2610: 2605: 2600: 2595: 2590: 2585: 2580: 2574: 2572: 2566: 2565: 2563: 2562: 2557: 2552: 2550:Factory method 2547: 2542: 2536: 2534: 2525: 2517: 2516: 2509: 2508: 2501: 2494: 2486: 2479: 2478: 2463: 2423: 2421: 2418: 2417: 2416: 2409: 2406: 2364:updateSkillSet 2214:BlockOutTimeTO 2202:BlockOutTimeTO 2163:BlockOutTimeTO 2151:BlockOutTimeTO 1863:BlockOutTimeTO 1851:BlockOutTimeTO 1389:getResourceDAO 1275:getResourceDAO 801:getSkillSetDAO 615:getResourceDAO 480:getResourceDAO 204:ResourceEntity 192:javax.naming.* 124: 117: 114: 106: 105: 98: 86: 83: 77: 74: 68: 65: 59: 56: 51: 48: 32: 29: 9: 6: 4: 3: 2: 3149: 3138: 3135: 3134: 3132: 3117: 3114: 3112: 3109: 3108: 3106: 3102: 3096: 3093: 3091: 3088: 3087: 3085: 3081: 3075: 3072: 3070: 3067: 3065: 3062: 3060: 3059:Robert Martin 3057: 3055: 3054:Martin Fowler 3052: 3050: 3047: 3045: 3042: 3040: 3037: 3035: 3032: 3030: 3029:Ralph Johnson 3027: 3025: 3022: 3020: 3017: 3016: 3014: 3010: 3004: 3003: 2999: 2997: 2996: 2992: 2991: 2989: 2985: 2979: 2976: 2974: 2971: 2969: 2966: 2964: 2961: 2959: 2956: 2954: 2951: 2949: 2946: 2944: 2941: 2939: 2936: 2934: 2931: 2929: 2926: 2924: 2921: 2919: 2916: 2914: 2911: 2910: 2908: 2902: 2896: 2893: 2891: 2888: 2886: 2883: 2881: 2878: 2876: 2873: 2871: 2868: 2866: 2865:Active record 2863: 2861: 2858: 2856: 2855:Naked objects 2853: 2851: 2848: 2846: 2845:Specification 2843: 2841: 2839: 2835: 2833: 2830: 2828: 2825: 2821: 2818: 2816: 2813: 2812: 2811: 2808: 2806: 2803: 2801: 2798: 2797: 2795: 2793: 2790:Architectural 2787: 2781: 2778: 2776: 2773: 2771: 2768: 2766: 2763: 2761: 2758: 2756: 2753: 2751: 2748: 2746: 2743: 2741: 2738: 2736: 2733: 2731: 2728: 2726: 2723: 2721: 2718: 2716: 2713: 2711: 2708: 2706: 2703: 2701: 2700:Active object 2698: 2697: 2695: 2693: 2687: 2677: 2674: 2672: 2669: 2667: 2664: 2662: 2659: 2657: 2654: 2652: 2649: 2647: 2644: 2642: 2639: 2637: 2634: 2632: 2629: 2627: 2624: 2623: 2621: 2619: 2615: 2609: 2606: 2604: 2601: 2599: 2596: 2594: 2591: 2589: 2586: 2584: 2581: 2579: 2576: 2575: 2573: 2571: 2567: 2561: 2558: 2556: 2553: 2551: 2548: 2546: 2543: 2541: 2538: 2537: 2535: 2533: 2529: 2526: 2524: 2518: 2514: 2507: 2502: 2500: 2495: 2493: 2488: 2487: 2484: 2474: 2467: 2451: 2447: 2441: 2439: 2437: 2435: 2433: 2431: 2429: 2424: 2415: 2412: 2411: 2405: 2097:blockOutTimes 1542:getResourceTO 1512:ejbPostCreate 1203:getPrimaryKey 1104:EntityContext 924:blockOutTimes 900:setResourceID 813:setResourceID 396:EntityContext 369:blockoutTimes 270:practiceGroup 122: 113: 111: 103: 99: 96: 95: 94: 92: 82: 73: 64: 55: 47: 40: 36: 28: 25: 22: 18: 3111:Anti-pattern 3074:Linda Rising 3000: 2993: 2938:Lazy loading 2922: 2870:Identity map 2837: 2521:Gang of Four 2472: 2466: 2454:. Retrieved 2449: 2404: 2346:EJBException 1998:EJBException 1923:blockOutTime 1629:departmentId 1623:departmentId 1482:EJBException 1440:EJBException 1344:EJBException 1218:ejbPassivate 1047:EJBException 1005:EJBException 864:blockoutTime 672:EJBException 525:EJBException 258:departmentId 119: 107: 88: 79: 76:Consequences 70: 61: 53: 45: 34: 16: 15: 3083:Communities 3064:Jim Coplien 3039:Grady Booch 3024:Erich Gamma 2968:Type tunnel 2953:Object pool 2948:Null object 2943:Mock object 2805:Interceptor 2775:Thread pool 2690:Concurrency 2636:Interpreter 2298:existingBOT 2241:existingBOT 2205:existingBOT 2016:addSkillSet 1293:resourceDAO 1269:resourceDAO 1266:ResourceDAO 1173:ejbActivate 966:resourceDAO 954:ResourceDAO 945:resourceDAO 942:ResourceDAO 825:skillSetDAO 807:skillSetDAO 795:skillSetDAO 792:SkillSetDAO 627:resourceDAO 609:resourceDAO 606:ResourceDAO 183:javax.ejb.* 174:java.util.* 165:javax.sql.* 116:Sample code 2978:Delegation 2913:Blackboard 2618:Behavioral 2570:Structural 2532:Creational 2456:6 February 2420:References 2370:Collection 2064:Collection 2025:moreSkills 2022:Collection 1779:Collection 1725:Collection 1701:resourceTO 1689:employeeId 1683:resourceTO 1677:employeeId 1665:resourceTO 1662:ResourceTO 1641:resourceTO 1617:resourceTO 1599:resourceTO 1581:resourceTO 1572:employeeId 1566:ResourceTO 1557:resourceTO 1554:ResourceTO 1539:ResourceTO 1518:ResourceTO 1305:employeeId 1287:ResourceTO 1227:employeeId 1182:employeeId 960:employeeId 906:employeeId 819:employeeId 708:primaryKey 639:primaryKey 576:primaryKey 552:employeeId 462:employeeId 450:employeeId 420:ResourceTO 381:Collection 366:Collection 222:employeeId 210:EntityBean 207:implements 156:java.sql.* 3044:Kent Beck 2770:Semaphore 2760:Scheduler 2603:Flyweight 2593:Decorator 2588:Composite 2560:Singleton 2555:Prototype 2373:updSkills 2328:Exception 1983:exception 1980:Exception 1746:skillSets 1611:firstName 1605:firstName 1326:Exception 1074:exception 1071:Exception 918:deleteAll 837:skillSets 831:deleteAll 777:skillSets 747:ejbRemove 654:Exception 507:Exception 414:ejbCreate 384:skillSets 354:managerId 246:firstName 85:Drawbacks 31:Structure 3131:Category 3104:See also 2906:patterns 2792:patterns 2745:Proactor 2692:patterns 2666:Strategy 2656:Observer 2646:Mediator 2641:Iterator 2523:patterns 2452:. Oracle 2408:See also 2289:resetNew 2274:setDirty 2124:iterator 2109:Iterator 2103:iterator 2088:Iterator 1869:moreIter 1836:moreIter 1824:iterator 1818:moreBOTs 1812:moreIter 1809:Iterator 1782:moreBOTs 1707:lastName 1695:lastName 1593:lastName 1587:lastName 1521:resource 1371:ejbStore 492:resource 474:resource 456:resource 423:resource 234:lastName 2958:Servant 2890:Model 2 2750:Reactor 2740:Monitor 2705:Balking 2676:Visitor 2651:Memento 2631:Command 2578:Adapter 2545:Builder 2220:botIter 2193:hasNext 2187:botIter 2169:updIter 2142:hasNext 2136:updIter 2118:updBOTs 2112:updIter 2091:botIter 2067:updBOTs 1842:hasNext 1248:ejbLoad 1197:context 1152:context 1128:context 1122:context 1107:context 591:boolean 399:context 393:private 126:package 21:Java EE 3012:People 2895:Broker 2598:Facade 2583:Bridge 2450:Oracle 2379:throws 2358:public 2349:(...); 2247:equals 2073:throws 2052:public 2031:throws 2010:public 2001:(...); 1962:(...); 1917:setNew 1788:throws 1767:public 1743:return 1722:public 1650:public 1638:return 1536:public 1506:public 1395:update 1365:public 1242:public 1212:public 1191:String 1167:public 1137:public 1092:public 972:delete 741:public 732:(...); 705:return 696:result 621:result 594:result 582:throws 573:String 564:String 561:public 543:return 486:create 429:throws 411:String 408:public 378:public 363:public 351:String 348:public 339:String 336:public 327:String 324:public 315:String 312:public 303:String 300:public 291:String 288:public 279:String 276:public 267:String 264:public 255:String 252:public 243:String 240:public 231:String 228:public 219:String 216:public 198:public 189:import 180:import 171:import 162:import 153:import 144:import 135:import 2987:Books 2904:Other 2840:-tier 2661:State 2608:Proxy 2340:throw 2322:catch 2304:botTO 2283:botTO 2268:botTO 2253:botTO 2181:while 2154:botTO 2130:while 1992:throw 1974:catch 1953:throw 1935:botTO 1911:botTO 1899:botTO 1854:botTO 1830:while 1494:...); 1476:throw 1458:catch 1452:...); 1434:throw 1416:catch 1356:...); 1338:throw 1320:catch 1065:catch 1059:...); 1041:throw 1023:catch 1017:...); 999:throw 981:catch 723:throw 684:...); 666:throw 648:catch 537:...); 519:throw 501:catch 342:pager 318:phone 306:email 294:grade 282:title 201:class 110:beans 19:is a 2963:Twin 2820:MVVM 2735:Lock 2730:Join 2458:2016 2361:void 2226:next 2175:next 2055:void 2013:void 1944:else 1875:next 1770:void 1653:void 1509:void 1404:()); 1368:void 1299:load 1245:void 1233:null 1215:void 1170:void 1158:null 1140:void 1116:this 1095:void 930:null 870:null 858:this 843:null 783:null 771:this 744:void 717:else 546:this 444:this 330:cell 102:Java 91:bean 2832:ECS 2827:ADR 2815:MVP 2810:MVC 2397:... 2391:... 2343:new 2331:exc 2292:(); 2277:(); 2229:(); 2196:()) 2178:(); 2145:()) 2127:(); 2106:(); 2082:try 2049:... 2043:... 1995:new 1956:new 1929:add 1920:(); 1902:))) 1878:(); 1845:()) 1827:(); 1803:try 1761:... 1755:... 1713:... 1635:... 1563:new 1500:... 1479:new 1437:new 1410:... 1392:(). 1380:try 1341:new 1314:... 1308:)); 1278:(); 1257:try 1206:(); 1083:... 1044:new 1002:new 975:(); 951:new 921:(); 891:(); 834:(); 804:(); 756:try 726:new 669:new 618:(); 600:try 522:new 483:(). 438:try 390:... 100:In 3133:: 2448:. 2427:^ 2256:)) 2235:if 1938:); 1881:if 1731:() 1575:); 1545:() 1467:ex 1425:ex 1374:() 1329:ex 1284:(( 1251:() 1221:() 1176:() 1146:() 1032:ex 990:ex 963:); 909:); 867:!= 852:if 822:); 780:!= 765:if 750:() 690:if 657:ex 642:); 510:ex 495:); 477:); 2838:n 2505:e 2498:t 2491:v 2460:. 2400:} 2394:} 2385:{ 2376:) 2367:( 2355:} 2352:} 2337:{ 2334:) 2325:( 2319:} 2316:} 2313:} 2310:} 2307:; 2301:= 2286:. 2271:. 2259:{ 2250:( 2244:. 2238:( 2223:. 2217:) 2211:( 2208:= 2199:{ 2190:. 2184:( 2172:. 2166:) 2160:( 2157:= 2148:{ 2139:. 2133:( 2121:. 2115:= 2100:. 2094:= 2085:{ 2079:{ 2070:) 2061:( 2046:} 2037:{ 2028:) 2019:( 2007:} 2004:} 1989:{ 1986:) 1977:( 1971:} 1968:} 1965:} 1947:{ 1941:} 1932:( 1926:. 1914:. 1905:{ 1896:( 1890:( 1887:! 1884:( 1872:. 1866:) 1860:( 1857:= 1848:{ 1839:. 1833:( 1821:. 1815:= 1806:{ 1794:{ 1785:) 1776:( 1752:} 1749:; 1734:{ 1716:} 1710:; 1704:. 1698:= 1692:; 1686:. 1680:= 1671:{ 1668:) 1659:( 1647:} 1644:; 1632:; 1626:= 1620:. 1614:; 1608:= 1602:. 1596:; 1590:= 1584:. 1569:( 1560:= 1548:{ 1530:} 1527:{ 1524:) 1515:( 1503:} 1497:} 1491:+ 1485:( 1473:{ 1470:) 1461:( 1455:} 1449:+ 1443:( 1431:{ 1428:) 1419:( 1413:} 1398:( 1383:{ 1377:{ 1362:} 1359:} 1353:+ 1347:( 1335:{ 1332:) 1323:( 1317:} 1302:( 1296:. 1290:) 1272:= 1260:{ 1254:{ 1239:} 1236:; 1230:= 1224:{ 1209:} 1200:. 1194:) 1188:( 1185:= 1179:{ 1164:} 1161:; 1155:= 1149:{ 1134:} 1131:; 1125:= 1119:. 1113:{ 1110:) 1101:( 1089:} 1086:} 1080:{ 1077:) 1068:( 1062:} 1056:+ 1050:( 1038:{ 1035:) 1026:( 1020:} 1014:+ 1008:( 996:{ 993:) 984:( 978:} 969:. 957:( 948:= 936:} 933:; 927:= 915:. 903:( 897:. 885:= 876:{ 873:) 861:. 855:( 849:} 846:; 840:= 828:. 816:( 810:. 798:= 789:{ 786:) 774:. 768:( 759:{ 753:{ 738:} 735:} 720:{ 714:} 711:; 702:{ 699:) 693:( 687:} 681:+ 675:( 663:{ 660:) 651:( 645:} 636:( 630:. 624:= 612:= 603:{ 597:; 588:{ 579:) 570:( 558:} 555:; 549:. 540:} 534:+ 528:( 516:{ 513:) 504:( 498:} 489:( 471:( 465:; 459:. 453:= 447:. 441:{ 435:{ 426:) 417:( 402:; 387:; 372:; 357:; 345:; 333:; 321:; 309:; 297:; 285:; 273:; 261:; 249:; 237:; 225:; 213:{ 195:; 186:; 177:; 168:; 159:; 150:; 141:; 132:;

Index

Java EE
Software design pattern
Composite entity pattern class diagram
bean
Java
beans
Data transfer object







"Core J2EE Patterns - Composite Entity"
v
t
e
Software design patterns
Gang of Four
patterns

Creational
Abstract factory
Builder
Factory method
Prototype
Singleton
Structural
Adapter
Bridge
Composite

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑