remove unnecessary files
authorMasaki Katakai <masaki@netbeans.org>
Wed, 13 Jun 2012 11:09:16 +0900
changeset 1742278bbb626d89
parent 1741 ba96ea652927
child 1743 f532ba32c468
remove unnecessary files
src/ja/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/odm/Bundle_ja.properties
src/ja/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/orm/Bundle_ja.properties
src/ru/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/odm/Bundle_ru.properties
src/ru/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/orm/Bundle_ru.properties
src/zh_CN/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/odm/Bundle_zh_CN.properties
src/zh_CN/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/orm/Bundle_zh_CN.properties
     1.1 --- a/src/ja/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/odm/Bundle_ja.properties	Wed Jun 13 10:20:09 2012 +0900
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,83 +0,0 @@
     1.4 -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     1.5 -#
     1.6 -# Copyright 2012 Oracle and/or its affiliates. All rights reserved.
     1.7 -#
     1.8 -# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
     1.9 -# Other names may be trademarks of their respective owners.
    1.10 -#
    1.11 -# The contents of this file are subject to the terms of either the GNU
    1.12 -# General Public License Version 2 only ("GPL") or the Common
    1.13 -# Development and Distribution License("CDDL") (collectively, the
    1.14 -# "License"). You may not use this file except in compliance with the
    1.15 -# License. You can obtain a copy of the License at
    1.16 -# http://www.netbeans.org/cddl-gplv2.html
    1.17 -# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    1.18 -# specific language governing permissions and limitations under the
    1.19 -# License.  When distributing the software, include this License Header
    1.20 -# Notice in each file and include the License file at
    1.21 -# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
    1.22 -# particular file as subject to the "Classpath" exception as provided
    1.23 -# by Oracle in the GPL Version 2 section of the License file that
    1.24 -# accompanied this code. If applicable, add the following below the
    1.25 -# License Header, with the fields enclosed by brackets [] replaced by
    1.26 -# your own identifying information:
    1.27 -# "Portions Copyrighted [year] [name of copyright owner]"
    1.28 -#
    1.29 -# If you wish your version of this file to be governed by only the CDDL
    1.30 -# or only the GPL Version 2, indicate your decision by adding
    1.31 -# "[Contributor] elects to include this software in this distribution
    1.32 -# under the [CDDL or GPL Version 2] license." If you do not indicate a
    1.33 -# single choice of license, a recipient has the option to distribute
    1.34 -# your version of this file under either the CDDL, the GPL Version 2 or
    1.35 -# to extend the choice of license to its licensees as provided above.
    1.36 -# However, if you add GPL Version 2 code and therefore, elected the GPL
    1.37 -# Version 2 license, then the option applies only if the new code is
    1.38 -# made subject to such option by the copyright holder.
    1.39 -#
    1.40 -# Contributor(s):
    1.41 -#
    1.42 -# Portions Copyrighted 2012 Sun Microsystems, Inc.
    1.43 -
    1.44 -AlsoLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@AlsoLoad</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30c7\u30fc\u30bf\u3092\u78ba\u8a8d\u3057\u3001\u5b58\u5728\u3059\u308b\u5834\u5408\u306f\u305d\u3053\u304b\u3089\u30ed\u30fc\u30c9\u3059\u308b\u8ffd\u52a0\u306e<code>mongodb</code>\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Field\n\ * @AlsoLoad("oldFieldName")\n\ */\nprivate $fieldName;\n</code></pre>\n<p>\u4e0a\u8a18\u306e<code>$fieldName</code>\u306f\u3001<code>fieldName</code>\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306f\u305d\u3053\u304b\u3089\u30ed\u30fc\u30c9\u3055\u308c\u3001\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306f<code>oldFieldName</code>\u306b\u5207\u308a\u66ff\u3048\u3089\u308c\u307e\u3059\u3002</p>
    1.45 -BinTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Bin</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>bin</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002<code>MongoBinData::BYTE_ARRAY</code>\u578b\u3092\u4f7f\u7528\u3057\u3066\u3001\u5024\u3092<a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a>\u306b\u5909\u63db\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ *@Bin\n\ */\nprivate $data;\n</code></pre>
    1.46 -BinCustomTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinCustom</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>bin_custom</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002<code>MongoBinData::CUSTOM</code>\u578b\u3092\u4f7f\u7528\u3057\u3066\u3001\u5024\u3092<a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a>\u306b\u5909\u63db\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @BinCustom\n\ */\nprivate $data;\n</code></pre>
    1.47 -BinFuncTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinFunc</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>bin_func</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002<code>MongoBinData::FUNC</code>\u578b\u3092\u4f7f\u7528\u3057\u3066\u3001\u5024\u3092<a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a>\u306b\u5909\u63db\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @BinFunc\n\ */\nprivate $data;\n</code></pre>
    1.48 -BinMd5Tag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinMD5</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>bin_md5</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002<code>MongoBinData::MD5</code>\u578b\u3092\u4f7f\u7528\u3057\u3066\u3001\u5024\u3092<a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a>\u306b\u5909\u63db\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @BinMD5\n\ */\nprivate $password;\n</code></pre>
    1.49 -BinUuidTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinUUID</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>bin_uuid</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002<code>MongoBinData::UUID</code>\u578b\u3092\u4f7f\u7528\u3057\u3066\u3001\u5024\u3092<a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a>\u306b\u5909\u63db\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @BinUUID\n\ */\nprivate $uuid;\n</code></pre>
    1.50 -BooleanTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Boolean</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>boolean</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Boolean\n\ */\nprivate $active;\n</code></pre>
    1.51 -CollectionTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Collection</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>collection</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002\u5024\u3092\u6570\u5024\u7d22\u5f15\u4ed8\u304d\u914d\u5217\u3068\u3057\u3066\u683c\u7d0d\u304a\u3088\u3073\u53d6\u5f97\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>strategy</code></b></td><td>\u30c7\u30fc\u30bf\u3092\u7dad\u6301\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3059\u308b\u65b9\u91dd\u3002\u53ef\u80fd\u306a\u5024\u306f<code>set</code>\u304a\u3088\u3073<code>pushAll</code>\u3067\u3001<code>pushAll</code>\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Collection(strategy="pushAll")\n\ */\nprivate $tags = array();\n</code></pre>
    1.52 -DateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Date</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>date</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002<code>MongoBinData::UUID</code>\u578b\u3092\u4f7f\u7528\u3057\u3066\u3001\u5024\u3092<a href="http://www.php.net/manual/en/class.mongodate.php">MongoDate</a>\u306b\u5909\u63db\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Date\n\ */\nprivate $createdAt;\n</code></pre>
    1.53 -DiscriminatorFieldTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorField</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u306e\u6ce8\u91c8\u306f\u3001\u7d99\u627f\u968e\u5c64\u306e\u6700\u4e0a\u4f4d/\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9\u306e\u5fc5\u9808\u6ce8\u91c8\u3067\u3059\u3002\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u304c\u5b9f\u969b\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3055\u308c\u305f\u30af\u30e9\u30b9\u306e\u540d\u524d\u3092\u4fdd\u5b58\u3059\u308b\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u8a73\u7d30\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>fieldName</code></b></td><td>\u5f01\u5225\u5b50\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3002\u3053\u306e\u540d\u524d\u306f\u3001\u914d\u5217\u30cf\u30a4\u30c9\u30ec\u30fc\u30b7\u30e7\u30f3\u4e2d\u306b\u30af\u30e9\u30b9\u540d\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306e\u30ad\u30fc\u3068\u3057\u3066\u3082\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ * @DiscriminatorField(fieldName="type")\n\ */\nclass SuperUser {\n\    // ...\n}\n</code></pre>
    1.54 -DiscriminatorMapTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorMap</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u5f01\u5225\u5b50\u30de\u30c3\u30d7\u306f\u3001\u7d99\u627f\u968e\u5c64\u306e\u6700\u4e0a\u4f4d/\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9\u306e\u5fc5\u9808\u6ce8\u91c8\u3067\u3059\u3002\u3053\u308c\u306f\u3001\u3069\u306e\u30af\u30e9\u30b9\u3092\u3069\u306e\u540d\u524d\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u4fdd\u5b58\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u304b\u3092\u5b9a\u7fa9\u3059\u308b\u552f\u4e00\u306e\u5f15\u6570\u3068\u3057\u3066\u914d\u5217\u3092\u53d6\u308a\u307e\u3059\u3002\u30ad\u30fc\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5024\u3001\u5024\u306f\u30af\u30e9\u30b9\u3067\u3059(\u30af\u30e9\u30b9\u304c\u540d\u524d\u7a7a\u9593\u306b\u3042\u308b\u304b\u3069\u3046\u304b\u306b\u3088\u3063\u3066\u3001\u5b8c\u5168\u4fee\u98fe\u30af\u30e9\u30b9\u540d\u307e\u305f\u306f\u975e\u4fee\u98fe\u30af\u30e9\u30b9\u540d)\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ * @InheritanceType("SINGLE_COLLECTION")\n\ * @DiscriminatorField(fieldName="discr")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\    /**\n\     * @Field(type="string")\n\     */\n\    private $discr;\n\    // ...\n}\n</code></pre>
    1.55 -DistanceTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Distance</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>@Distance</code>\u6ce8\u91c8\u3092\u5730\u7406\u7a7a\u9593\u7d22\u5f15\u3068\u7d44\u307f\u5408\u305b\u3066\u4f7f\u7528\u3059\u308b\u3068\u3001<code>$near</code>\u30af\u30a8\u30ea\u30fc\u306e\u5b9f\u884c\u6642\u306b\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u8ddd\u96e2\u5024\u304c\u79fb\u5165\u3055\u308c\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ * @Index(keys={"coordinates"="2d"})\n\ */\nclass Place {\n\    /**\n\     * @Id\n\     */\n\    public $id;\n\n\    /**\n\     * @EmbedOne(targetDocument="Coordinates")\n\     */\n\    public $coordinates;\n\n\    /**\n\     * @Distance\n\     */\n\    public $distance;\n}\n\n/**\n\ * @EmbeddedDocument\n\ */\nclass Coordinates {\n\    /**\n\     * @Float\n\     */\n\    public $latitude;\n\n\    /**\n\     * @Float\n\     */\n\    public $longitude;\n}\n</code></pre>\n<p><code>near()</code>\u30af\u30a8\u30ea\u30fc\u3092\u5b9f\u884c\u3057\u3066\u8ddd\u96e2\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u5ea7\u6a19\u306e\u30bb\u30c3\u30c8\u306b\u6700\u3082\u8fd1\u3044\u90fd\u5e02\u3092\u53d6\u5f97\u3057\u307e\u3059:</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n$city = $this->dm->createQuery('City')\n\        ->field('coordinates')->near(50, 60)\n\        ->limit(1)\n\        ->getQuery()\n\        ->getSingleResult();\necho $city->distance;\n</code></pre>
    1.56 -Doctrine2OdmAnnotationsProvider.name=Doctrine2 ODM
    1.57 -DocumentTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Document</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>PHP</code>\u30af\u30e9\u30b9\u3092<code>Document</code>\u3068\u3057\u3066\u30de\u30fc\u30af\u3059\u308b\u305f\u3081\u306e\u5fc5\u9808\u6ce8\u91c8\u3002<code>Doctrine</code> <code>ODM</code>\u3067\u306f\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u305f\u3059\u3079\u3066\u306e\u30af\u30e9\u30b9\u306e\u6301\u7d9a\u6027\u304c\u7ba1\u7406\u3055\u308c\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>db</code></b></td><td><code>Document Manager</code>\u3067\u306f\u4f7f\u7528\u3059\u308b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u540d\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u304b\u304e\u308a\u30c7\u30d5\u30a9\u30eb\u30c8\u306e<code>mongodb</code>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304c\u4f7f\u7528\u3055\u308c\u3001\u3053\u306e\u5024\u3092\u6307\u5b9a\u3059\u308b\u3068\u3001\u4f7f\u7528\u3059\u308b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30fb\u30d9\u30fc\u30b9\u3067\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3067\u304d\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>collection</code></b></td><td>\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u3001\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u540d\u306f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30af\u30e9\u30b9\u540d\u304b\u3089\u62bd\u51fa\u3055\u308c\u307e\u3059\u304c\u3001\u3053\u306e\u5c5e\u6027\u3092\u4f7f\u7528\u3057\u3066\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3067\u304d\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>repositoryClass</code></b></td><td>\u4f7f\u7528\u3059\u308b\u30ab\u30b9\u30bf\u30e0\u30fb\u30ea\u30dd\u30b8\u30c8\u30ea\u30fb\u30af\u30e9\u30b9\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>indexes</code></b></td><td>\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u7d22\u5f15\u306e\u914d\u5217\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>requireIndexes</code></b></td><td>\u30af\u30a8\u30ea\u30fc\u304c\u7d22\u5f15\u3092\u5fc5\u8981\u3068\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document(\n\ *     db="documents",\n\ *     collection="users",\n\ *     repositoryClass="MyProject\\UserRepository",\n\ *     indexes={\n\ *         @Index(keys={"username"="desc"}, options={"unique"=true})\n\ *     },\n\ *     requireIndexes=true\n\ * )\n\ */\nclass User {\n\    //...\n}\n</code></pre>
    1.58 -EmbedManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@EmbedMany</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u306e\u6ce8\u91c8\u306f<code>@EmbedOne</code>\u306b\u4f3c\u3066\u3044\u307e\u3059\u304c\u30011\u3064\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u57cb\u3081\u8fbc\u3080\u306e\u3067\u306f\u306a\u304f\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u57cb\u3081\u8fbc\u3080\u3088\u3046\u306b<code>mongodb</code>\u306b\u901a\u77e5\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u5b8c\u5168\u306a\u30af\u30e9\u30b9\u540d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u5f01\u5225\u5b50\u5024\u3092\u683c\u7d0d\u3059\u308b\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3002</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u30af\u30e9\u30b9\u540d\u3078\u306e\u5f01\u5225\u5b50\u5024\u306e\u30de\u30c3\u30d7\u3002</td></tr><tr><td valign="top"><b><code>strategy</code></b></td><td>\u53c2\u7167\u306e\u7dad\u6301\u306b\u4f7f\u7528\u3059\u308b\u65b9\u91dd\u3002\u53ef\u80fd\u306a\u5024\u306f<code>set</code>\u304a\u3088\u3073<code>pushAll</code>\u3067\u3001<code>pushAll</code>\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @EmbedMany(\n\ *     strategy="set",\n\ *     discriminatorField="type",\n\ *     discriminatorMap={\n\ *         "book"="Documents\\BookTag",\n\ *         "song"="Documents\\SongTag"\n\ *     }\n\ * )\n\ */\nprivate $tags = array();\n</code></pre>\n<p><code>Document</code>\u306e\u578b\u306b\u5fdc\u3058\u3066\u3001<code>user<code>\u307e\u305f\u306f<code>author<code>\u306e\u5024\u304c<code>type<code>\u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u683c\u7d0d\u3055\u308c\u3001\u30cf\u30a4\u30c9\u30ec\u30fc\u30b7\u30e7\u30f3\u4e2d\u306b\u6b63\u3057\u3044\u30af\u30e9\u30b9\u3092\u9069\u5207\u306b\u518d\u69cb\u7bc9\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002</p>
    1.59 -EmbedOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@EmbedOne</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>@EmbedOne</code>\u6ce8\u91c8\u306f\u3001\u5185\u90e8\u3067\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u304c<code>mongodb</code>\u306e\u89aa\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u57cb\u3081\u8fbc\u307e\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u9664\u304d\u3001<code>@ReferenceOne</code>\u3068\u307b\u307c\u540c\u3058\u3088\u3046\u306b\u6a5f\u80fd\u3057\u307e\u3059\u3002<code>mongodb</code>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u304b\u3089:</p><p><i> <code>Mongo</code>\u30b9\u30ad\u30fc\u30de\u306e\u8a2d\u8a08\u306b\u91cd\u8981\u306a\u554f\u984c\u306f\u3001"\u3053\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u72ec\u81ea\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u5024\u3059\u308b\u304b\u3001\u305d\u308c\u3068\u3082\u4ed6\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u57cb\u3081\u8fbc\u3080\u5fc5\u8981\u304c\u3042\u308b\u304b"\u3068\u3044\u3046\u3082\u306e\u3067\u3059\u3002\u30ea\u30ec\u30fc\u30b7\u30e7\u30ca\u30eb\u30fb\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u306f\u3001\u5bfe\u8c61\u306e\u5404\u30b5\u30d6\u30a2\u30a4\u30c6\u30e0\u306f\u3001\u901a\u5e38\u3001\u500b\u5225\u306e\u30c6\u30fc\u30d6\u30eb\u306b\u306a\u308a\u307e\u3059(\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u305f\u3081\u306b\u975e\u6b63\u898f\u5316\u3059\u308b\u5834\u5408\u3092\u9664\u304f)\u3002<code>Mongo</code>\u3067\u306f\u3053\u308c\u306f\u63a8\u5968\u3055\u308c\u305a\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u57cb\u3081\u8fbc\u3080\u65b9\u304c\u5927\u5e45\u306b\u52b9\u7387\u7684\u3067\u3059\u3002\u305d\u306e\u5834\u5408\u3001\u30c7\u30fc\u30bf\u306f\u30c7\u30a3\u30b9\u30af\u4e0a\u306e\u540c\u4e00\u5834\u6240\u306b\u914d\u7f6e\u3055\u308c\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30fb\u30b5\u30fc\u30d0\u30fc\u306e\u30bf\u30fc\u30f3\u30a2\u30e9\u30a6\u30f3\u30c9\u306f\u9664\u53bb\u3055\u308c\u307e\u3059\u3002\u305d\u306e\u305f\u3081\u3001\u4e00\u822c\u306b\u554f\u984c\u3068\u306a\u308b\u306e\u306f"\u3053\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u57cb\u3081\u8fbc\u307e\u306a\u3044\u7406\u7531\u306f\u4f55\u304b"\u3068\u3044\u3046\u3053\u3068\u3067\u3059</i></p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u5b8c\u5168\u306a\u30af\u30e9\u30b9\u540d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u5f01\u5225\u5b50\u5024\u3092\u683c\u7d0d\u3059\u308b\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3002</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u30af\u30e9\u30b9\u540d\u3078\u306e\u5f01\u5225\u5b50\u5024\u306e\u30de\u30c3\u30d7\u3002</td></tr><tr><td valign="top"><b><code>strategy</code></b></td><td>\u53c2\u7167\u3092\u7dad\u6301\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3059\u308b\u65b9\u91dd\u3002\u53ef\u80fd\u306a\u5024\u306f<code>set</code>\u304a\u3088\u3073<code>pushAll</code>\u3067\u3001<code>pushAll</code>\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @EmbedOne(\n\ *     strategy="set",\n\ *     discriminatorField="type",\n\ *     discriminatorMap={\n\ *         "book"="Documents\\BookTag",\n\ *         "song"="Documents\\SongTag"\n\ *     }\n\ * )\n\ */\nprivate $tags = array();\n</code></pre>\n<p><code>Document</code>\u306e\u578b\u306b\u5fdc\u3058\u3066\u3001<code>user<code>\u307e\u305f\u306f<code>author<code>\u306e\u5024\u304c<code>type<code>\u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u683c\u7d0d\u3055\u308c\u3001\u30cf\u30a4\u30c9\u30ec\u30fc\u30b7\u30e7\u30f3\u4e2d\u306b\u6b63\u3057\u3044\u30af\u30e9\u30b9\u3092\u9069\u5207\u306b\u518d\u69cb\u7bc9\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002</p>
    1.60 -EmbeddedDocumentTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@EmbeddedDocument</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u57cb\u8fbc\u307f\u53ef\u80fd\u3068\u3057\u3066\u30de\u30fc\u30af\u3057\u307e\u3059\u3002\u3053\u306e\u6ce8\u91c8\u304c\u306a\u3044\u3068\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u4ee5\u5916\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u57cb\u3081\u8fbc\u3080\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\nclass Money {\n\    /**\n\     * @Float\n\     */\n\    protected $amount;\n\n\    public function __construct($amount) {\n\        $this->amount = (float) $amount;\n\    }\n\    //...\n}\n\n/**\n\ * @Document(db="finance", collection="wallets")\n\ */\nclass Wallet {\n\    /**\n\     * @EmbedOne(targetDocument="Money")\n\     */\n\    protected $money;\n\n\    public function setMoney(Money $money) {\n\        $this->money = $money;\n\    }\n\    //...\n}\n//...\n$wallet = new Wallet();\n$wallet->setMoney(new Money(34.39));\n$dm->persist($wallet);\n$dm->flush();\n</code></pre>\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3067\u306fmoney\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u683c\u7d0d\u3055\u308c\u307e\u305b\u3093\u3002\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u304c\u6a5f\u80fd\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u6b21\u306e\u3088\u3046\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059:</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Money {\n\    //...\n}\n</code></pre>\n<p>\u307e\u305f\u306f</p><pre><code>\n/**\n\ * @EmbeddedDocument\n\ */\nclass Money {\n\    //...\n}\n</code></pre>\n<p>\u9055\u3044\u306f\u3001<code>@EmbeddedDocument</code>\u306f\u89aa<code>@Document</code>\u306a\u3057\u3067\u306f\u683c\u7d0d\u3067\u304d\u306a\u3044\u3053\u3068\u3001\u304a\u3088\u3073\u72ec\u81ea\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5c5e\u6027\u307e\u305f\u306f\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u5c5e\u6027\u3092\u6307\u5b9a\u3067\u304d\u306a\u3044\u3053\u3068\u3067\u3059\u3002</p>
    1.61 -FieldTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Field</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u6ce8\u91c8\u4ed8\u304d\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u3092\u6c38\u7d9a\u3068\u3057\u3066\u30de\u30fc\u30af\u3057\u307e\u3059\u3002\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570<code>PHP</code> <code>DocBlock</code>\u30b3\u30e1\u30f3\u30c8\u5185\u306b\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u5909\u6570\u5185\u306b\u4fdd\u6301\u3055\u308c\u308b\u3059\u3079\u3066\u306e\u5024\u306f\u3001\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30fb\u30af\u30e9\u30b9\u306e\u30e9\u30a4\u30d5\u30b5\u30a4\u30af\u30eb\u306e\u4e00\u90e8\u3068\u3057\u3066\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30fb\u30b9\u30c8\u30a2\u306b\u4fdd\u5b58\u3055\u308c\u305d\u3053\u304b\u3089\u30ed\u30fc\u30c9\u3055\u308c\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>type</code></b></td><td><code>PHP</code>\u3068\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u8868\u73fe\u306e\u9593\u3067\u5909\u63db\u3055\u308c\u308b<code>Doctrine</code> <code>ODM</code> <code>Type</code>\u306e\u540d\u524d\u3002\u6b21\u306e\u3044\u305a\u308c\u304b\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059: <code>string</code>\u3001<code>boolean</code>\u3001<code>int</code>\u3001<code>float</code>\u3001<code>hash</code>\u3001<code>date</code>\u3001<code>key</code>\u3001<code>timestamp</code>\u3001<code>bin</code>\u3001<code>bin_func</code>\u3001<code>bin_uuid</code>\u3001<code>bin_md5</code>\u3001<code>bin_custom</code>\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u540d\u304c<code>mongodb</code>\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u306b\u3082\u4f7f\u7528\u3055\u308c\u307e\u3059\u304c\u3001<code>name<code>\u5c5e\u6027\u3092\u4f7f\u7528\u3057\u3066\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Field(type="string")\n\ */\nprotected $username;\n\n/**\n\ * @Field(type="string" name="origin")\n\ */\nprotected $country;\n\n/**\n\ * @Column(type="float")\n\ */\nprotected $height;\n</code></pre>
    1.62 -FileTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@File</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30d7\u30ed\u30d1\u30c6\u30a3\u304c\u30d5\u30a1\u30a4\u30eb\u3067\u3042\u308a\u3001<code>mongodb</code>\u306b\u4fdd\u5b58\u3059\u308b\u524d\u306b\u65e2\u5b58\u306e\u30d5\u30a1\u30a4\u30eb\u30fb\u30d1\u30b9\u306b\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3053\u3068\u3092<code>ODM</code>\u306b\u901a\u77e5\u3057\u307e\u3059\u3002\u53d6\u5f97\u6642\u306b<a href="http://www.php.net/manual/en/class.mongogridfsfile.php">MongoGridFSFile</a>\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3068\u3057\u3066\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3055\u308c\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @File\n\ */\nprivate $photo;\n</code></pre>
    1.63 -FloatTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Float</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>float</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Float\n\ */\nprivate $price;\n</code></pre>
    1.64 -HashTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Hash</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>hash</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002\u5024\u3092\u9023\u60f3\u914d\u5217\u3068\u3057\u3066\u683c\u7d0d\u304a\u3088\u3073\u53d6\u5f97\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Hash\n\ */\nprivate $map;\n</code></pre>
    1.65 -IdTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Id</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u6ce8\u91c8\u4ed8\u304d\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u306f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u8b58\u5225\u5b50\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u6ce8\u91c8\u306f\u30de\u30fc\u30ab\u30fc\u306e\u307f\u3067\u3001\u5fc5\u9808\u307e\u305f\u306f\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027\u306f\u3042\u308a\u307e\u305b\u3093\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass User {\n\    /**\n\     * @Id\n\     */\n\    protected $id;\n}\n</code></pre>
    1.66 -IncrementTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Increment</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30a4\u30f3\u30af\u30ea\u30e1\u30f3\u30c8\u578b\u306f\u3001\u66f4\u65b0\u6642\u306b<code>$set</code>\u306e\u304b\u308f\u308a\u306b<code>$inc</code>\u6f14\u7b97\u5b50\u304c\u4f7f\u7528\u3055\u308c\u308b\u3053\u3068\u3092\u9664\u304d\u3001\u901a\u5e38\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u540c\u69d8\u3067\u3059:</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\nclass Package {\n\    // ...\n\n\    /**\n\     * @Increment\n\     */\n\    protected $downloads = 0;\n\n\    public function incrementDownloads() {\n\        $this->downloads++;\n\    }\n\n\    // ...\n}\n</code></pre>\n<p><code>Package</code>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u6b21\u306e\u3088\u3046\u306b\u66f4\u65b0\u3057\u307e\u3059:</p><pre><code>\n$package->incrementDownloads();\n$dm->flush();\n</code></pre>\n<p><code>Mongo</code>\u306b\u9001\u4fe1\u3055\u308c\u308b\u30af\u30a8\u30ea\u30fc\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059:</p><pre><code>\narray(\n\    '$inc' => array(\n\        'downloads' => 1\n\    )\n)\n</code></pre>\n<p>\u3053\u308c\u306b\u3088\u308a\u3001\u65b0\u3057\u3044\u5024\u3068\u53e4\u3044\u5024\u306e\u5dee\u306e\u5206\u306e\u307f\u5024\u304c\u5897\u5206\u3055\u308c\u307e\u3059\u3002</p>
    1.67 -IndexTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Index</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u6ce8\u91c8\u306f<code>@Document</code>\u6ce8\u91c8\u5185\u3067\u30af\u30e9\u30b9\u30fb\u30ec\u30d9\u30eb\u3067\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u6307\u5b9a\u3055\u308c\u305f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30fb\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u7d22\u5f15\u3092\u751f\u6210\u3059\u308b\u3088\u3046\u306b<code>mongodb</code>\u306b\u6307\u793a\u3067\u304d\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>keys</code></b></td><td>\u7d22\u5f15\u3092\u4f5c\u6210\u3059\u308b\u30d5\u30a3\u30fc\u30eb\u30c9\u3002</td></tr><tr><td valign="top"><b><code>options</code></b></td><td><code>MongoCollection</code>\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u914d\u5217\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document(\n\ *   db="my_database",\n\ *   collection="users",\n\ *   indexes={\n\ *     @Index(keys={"username"="desc"}, options={"unique"=true})\n\ *   }\n\ * )\n\ */\nclass User {\n\    //...\n}\n</code></pre>\n<p>\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u5358\u306b<code>@Index</code>\u307e\u305f\u306f<code>@UniqueIndex</code>\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059:</p><pre><code>\n/**\n\ * @String\n\ * @UniqueIndex(safe="true")\n\ */\nprivate $username;\n</code></pre>
    1.68 -IntTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Int</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>int</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Int\n\ */\nprivate $amount;\n</code></pre>
    1.69 -InheritanceTypeTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@InheritanceTypeTag</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u7d99\u627f\u968e\u5c64\u3067\u3001\u3053\u306e\u6ce8\u91c8\u3092\u6700\u4e0a\u4f4d/\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9\u3067\u4f7f\u7528\u3057\u3066\u3001\u7d99\u627f\u306b\u4f7f\u7528\u3055\u308c\u308b\u65b9\u91dd\u3092\u5b9a\u7fa9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u73fe\u5728\u3001<code>SINGLE_COLLECTION</code>\u304a\u3088\u3073<code>COLLECTION_PER_CLASS</code>\u304c\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\u3002</p><p>\u3053\u306e\u6ce8\u91c8\u306f\u3001\u5e38\u306b<code>@DiscriminatorMap</code>\u304a\u3088\u3073<code>@DiscriminatorField</code>\u6ce8\u91c8\u3068\u3068\u3082\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ * @InheritanceType("COLLECTION_PER_CLASS")\n\ * @DiscriminatorMap({"person"="Person", "employee"="Employee"})\n\ */\nclass Person {\n\    // ...\n}\n\n/**\n\ * @Document\n\ * @InheritanceType("SINGLE_COLLECTION")\n\ * @DiscriminatorMap({"person"="Person", "employee"="Employee"})\n\ */\nclass Person {\n\    // ...\n}\n</code></pre>
    1.70 -KeyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Key</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>key</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002\u5024\u304c<code>true</code>\u307e\u305f\u306f<code>false</code>\u306b\u8a55\u4fa1\u3055\u308c\u305f\u5834\u5408\u3001\u305d\u308c\u305e\u308c<a href="http://www.php.net/manual/en/class.mongomaxkey.php"><code>MongoMaxKey</code><a/>\u307e\u305f\u306f<a href="http://www.php.net/manual/en/class.mongominkey.php"><code>MongoMinKey</code><a/>\u306b\u5909\u63db\u3055\u308c\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Key\n\ */\nprivate $last;\n</code></pre>
    1.71 -MappedSuperclassTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@MappedSuperclass</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u306e\u6ce8\u91c8\u306f\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30fb\u30af\u30e9\u30b9\u306e\u89aa\u3067\u3042\u308a\u7ba1\u7406\u3067\u304d\u306a\u3044\u30af\u30e9\u30b9\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<a href="http://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/inheritance/en">\u8ffd\u52a0\u60c5\u5831</a>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @MappedSuperclass\n\ */\nclass BaseDocument {\n\    // ...\n}\n</code></pre>
    1.72 -NotSavedTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@NotSaved</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u306e\u6ce8\u91c8\u306f\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306b\u30ed\u30fc\u30c9\u3055\u308c\u305f\u304c\u4fdd\u5b58\u306f\u3055\u308c\u306a\u304b\u3063\u305f\u5834\u5408\u306b\u3001\u305d\u308c\u3089\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @NotSaved\n\ */\npublic $field;\n</code></pre>
    1.73 -PreLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Preload</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PreLoad</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PreLoad\n\     */\n\    public function preLoad(array &$data) {\n\        // ...\n\    }\n}\n</code></pre>
    1.74 -PostLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostLoad</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PostLoad</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PostLoad\n\     */\n\    public function postLoad() {\n\        // ...\n\    }\n}\n</code></pre>
    1.75 -PostPersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostPersist</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PostPersist</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PostPersist\n\     */\n\    public function postPersist() {\n\        // ...\n\    }\n}\n</code></pre>
    1.76 -PostRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostRemove</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PostRemove</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PostRemove\n\     */\n\    public function postRemove() {\n\        // ...\n\    }\n}\n</code></pre>
    1.77 -PostUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PostUpdate</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PostUpdate\n\     */\n\    public function postUpdate() {\n\        // ...\n\    }\n}\n</code></pre>
    1.78 -PrePersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PrePersist</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PrePersist</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PrePersist\n\     */\n\    public function prePersist() {\n\        // ...\n\    }\n}\n</code></pre>
    1.79 -PreRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreRemove</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PreRemove</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PreRemove\n\     */\n\    public function preRemove() {\n\        // ...\n\    }\n}\n</code></pre>
    1.80 -PreUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PreUpdate</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PreUpdate\n\     */\n\    public function preUpdate() {\n\        // ...\n\    }\n}\n</code></pre>
    1.81 -ReferenceManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ReferenceMany</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u6ce8\u91c8\u4ed8\u304d\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u304c\u3001\u53c2\u7167\u3055\u308c\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u4fdd\u6301\u3059\u308b\u3053\u3068\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u5b8c\u5168\u306a\u30af\u30e9\u30b9\u540d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>simple</code></b></td><td>\u5358\u7d14\u306a\u53c2\u7167\u3092\u4f5c\u6210\u3057\u3001<code>DBRef</code>\u306e\u304b\u308f\u308a\u306b<code>MongoId</code>\u306e\u307f\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>cascade</code></b></td><td>\u30ab\u30b9\u30b1\u30fc\u30c9\u30fb\u30aa\u30d7\u30b7\u30e7\u30f3\u3002</td></tr><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u5f01\u5225\u5b50\u5024\u3092\u683c\u7d0d\u3059\u308b\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3002</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u30af\u30e9\u30b9\u540d\u3078\u306e\u5f01\u5225\u5b50\u5024\u306e\u30de\u30c3\u30d7\u3002</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td>\u975e\u6240\u6709\u5074\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3002\u6240\u6709\u5074\u3067\u306e\u307f\u8a31\u53ef\u3055\u308c\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u6240\u6709\u5074\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3002\u975e\u6240\u6709\u5074\u3067\u306e\u307f\u8a31\u53ef\u3055\u308c\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>repositoryMethod</code></b></td><td>\u3053\u306e\u53c2\u7167\u3092\u79fb\u5165\u3059\u308b\u305f\u3081\u306b\u547c\u3073\u51fa\u3059\u30ea\u30dd\u30b8\u30c8\u30ea\u30fb\u30e1\u30bd\u30c3\u30c9\u306e\u540d\u524d\u3002</td></tr><tr><td valign="top"><b><code>sort</code></b></td><td>\u53c2\u7167\u3092\u30ed\u30fc\u30c9\u3059\u308b\u30af\u30a8\u30ea\u30fc\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u30fb\u30bd\u30fc\u30c8\u3002</td></tr><tr><td valign="top"><b><code>criteria</code></b></td><td>\u53c2\u7167\u3092\u30ed\u30fc\u30c9\u3059\u308b\u30af\u30a8\u30ea\u30fc\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u6761\u4ef6\u306e\u914d\u5217\u3002</td></tr><tr><td valign="top"><b><code>limit</code></b></td><td>\u53c2\u7167\u3092\u30ed\u30fc\u30c9\u3059\u308b\u30af\u30a8\u30ea\u30fc\u306e\u5236\u9650\u3002</td></tr><tr><td valign="top"><b><code>skip</code></b></td><td>\u53c2\u7167\u3092\u30ed\u30fc\u30c9\u3059\u308b\u30af\u30a8\u30ea\u30fc\u306e\u30b9\u30ad\u30c3\u30d7\u3002</td></tr><tr><td valign="top"><b><code>strategy</code></b></td><td>\u53c2\u7167\u3092\u7dad\u6301\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3059\u308b\u65b9\u91dd\u3002\u53ef\u80fd\u306a\u5024\u306f<code>set</code>\u304a\u3088\u3073<code>pushAll</code>\u3067\u3001<code>pushAll</code>\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @ReferenceMany(\n\ *     strategy="set",\n\ *     targetDocument="Documents\\Item",\n\ *     cascade="all",\n\ *     discriminatorField="type",\n\ *     discriminatorMap={\n\ *         "book"="Documents\\BookItem",\n\ *         "song"="Documents\\SongItem"\n\ *     }\n\ * )\n\ */\nprivate $cart;\n</code></pre>
    1.82 -StringTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@String</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>string</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @String\n\ */\nprivate $username;\n</code></pre>
    1.83 -TimestampTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Timestamp</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>type</code>\u5c5e\u6027\u304c<code>timestamp</code>\u306b\u8a2d\u5b9a\u3055\u308c\u305f<code>@Field</code>\u306e\u30a8\u30a4\u30ea\u30a2\u30b9\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Timestamp\n\ */\nprivate $created;\n</code></pre>
    1.84 -UniqueIndexTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@UniqueIndex</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u6307\u5b9a\u3055\u308c\u305f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u4e0a\u3067\u4e00\u610f\u306e\u7d22\u5f15\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @String\n\ * @UniqueIndex\n\ */\nprivate $email;\n</code></pre>
    1.85 -ReferenceOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ReferenceOne</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u95a2\u9023\u3059\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30fb\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4fdd\u6301\u3059\u308b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u5b8c\u5168\u306a\u30af\u30e9\u30b9\u540d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>simple</code></b></td><td>\u5358\u7d14\u306a\u53c2\u7167\u3092\u4f5c\u6210\u3057\u3001<code>DBRef</code>\u306e\u304b\u308f\u308a\u306b<code>MongoId</code>\u306e\u307f\u3092\u683c\u7d0d\u3057\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>cascade</code></b></td><td>\u30ab\u30b9\u30b1\u30fc\u30c9\u30fb\u30aa\u30d7\u30b7\u30e7\u30f3\u3002</td></tr><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u5f01\u5225\u5b50\u5024\u3092\u683c\u7d0d\u3059\u308b\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3002</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u30af\u30e9\u30b9\u540d\u3078\u306e\u5f01\u5225\u5b50\u5024\u306e\u30de\u30c3\u30d7\u3002</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td>\u975e\u6240\u6709\u5074\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3002\u6240\u6709\u5074\u3067\u306e\u307f\u8a31\u53ef\u3055\u308c\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u6240\u6709\u5074\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3002\u975e\u6240\u6709\u5074\u3067\u306e\u307f\u8a31\u53ef\u3055\u308c\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>repositoryMethod</code></b></td><td>\u3053\u306e\u53c2\u7167\u3092\u79fb\u5165\u3059\u308b\u305f\u3081\u306b\u547c\u3073\u51fa\u3059\u30ea\u30dd\u30b8\u30c8\u30ea\u30fb\u30e1\u30bd\u30c3\u30c9\u306e\u540d\u524d\u3002</td></tr><tr><td valign="top"><b><code>sort</code></b></td><td>\u53c2\u7167\u3092\u30ed\u30fc\u30c9\u3059\u308b\u30af\u30a8\u30ea\u30fc\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u30fb\u30bd\u30fc\u30c8\u3002</td></tr><tr><td valign="top"><b><code>criteria</code></b></td><td>\u53c2\u7167\u3092\u30ed\u30fc\u30c9\u3059\u308b\u30af\u30a8\u30ea\u30fc\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u6761\u4ef6\u306e\u914d\u5217\u3002</td></tr><tr><td valign="top"><b><code>limit</code></b></td><td>\u53c2\u7167\u3092\u30ed\u30fc\u30c9\u3059\u308b\u30af\u30a8\u30ea\u30fc\u306e\u5236\u9650\u3002</td></tr><tr><td valign="top"><b><code>skip</code></b></td><td>\u53c2\u7167\u3092\u30ed\u30fc\u30c9\u3059\u308b\u30af\u30a8\u30ea\u30fc\u306e\u30b9\u30ad\u30c3\u30d7\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @ReferenceOne(\n\ *     targetDocument="Documents\\Item",\n\ *     cascade="all",\n\ *     discriminatorField="type",\n\ *     discriminatorMap={\n\ *         "book"="Documents\\BookItem",\n\ *         "song"="DOcuments\\SongItem"\n\ *     }\n\ * )\n\ */\nprivate $cart;\n</code></pre>
    1.86 -
     2.1 --- a/src/ja/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/orm/Bundle_ja.properties	Wed Jun 13 10:20:09 2012 +0900
     2.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.3 @@ -1,72 +0,0 @@
     2.4 -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     2.5 -#
     2.6 -# Copyright 2012 Oracle and/or its affiliates. All rights reserved.
     2.7 -#
     2.8 -# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
     2.9 -# Other names may be trademarks of their respective owners.
    2.10 -#
    2.11 -# The contents of this file are subject to the terms of either the GNU
    2.12 -# General Public License Version 2 only ("GPL") or the Common
    2.13 -# Development and Distribution License("CDDL") (collectively, the
    2.14 -# "License"). You may not use this file except in compliance with the
    2.15 -# License. You can obtain a copy of the License at
    2.16 -# http://www.netbeans.org/cddl-gplv2.html
    2.17 -# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    2.18 -# specific language governing permissions and limitations under the
    2.19 -# License.  When distributing the software, include this License Header
    2.20 -# Notice in each file and include the License file at
    2.21 -# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
    2.22 -# particular file as subject to the "Classpath" exception as provided
    2.23 -# by Oracle in the GPL Version 2 section of the License file that
    2.24 -# accompanied this code. If applicable, add the following below the
    2.25 -# License Header, with the fields enclosed by brackets [] replaced by
    2.26 -# your own identifying information:
    2.27 -# "Portions Copyrighted [year] [name of copyright owner]"
    2.28 -#
    2.29 -# If you wish your version of this file to be governed by only the CDDL
    2.30 -# or only the GPL Version 2, indicate your decision by adding
    2.31 -# "[Contributor] elects to include this software in this distribution
    2.32 -# under the [CDDL or GPL Version 2] license." If you do not indicate a
    2.33 -# single choice of license, a recipient has the option to distribute
    2.34 -# your version of this file under either the CDDL, the GPL Version 2 or
    2.35 -# to extend the choice of license to its licensees as provided above.
    2.36 -# However, if you add GPL Version 2 code and therefore, elected the GPL
    2.37 -# Version 2 license, then the option applies only if the new code is
    2.38 -# made subject to such option by the copyright holder.
    2.39 -#
    2.40 -# Contributor(s):
    2.41 -#
    2.42 -# Portions Copyrighted 2012 Sun Microsystems, Inc.
    2.43 -
    2.44 -#ColumnTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Column</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u6ce8\u91c8\u4ed8\u304d\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u3092\u6301\u7d9a\u7684\u3068\u3057\u3066\u30de\u30fc\u30af\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570<code>PHP</code> <code>DocBlock</code>\u30b3\u30e1\u30f3\u30c8\u306e\u4e2d\u306b\u5165\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u5909\u6570\u306e\u4e2d\u306b\u542b\u307e\u308c\u308b\u5024\u306f\u3059\u3079\u3066\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9\u306e\u30e9\u30a4\u30d5\u30b5\u30a4\u30af\u30eb\u306e\u4e00\u90e8\u3068\u3057\u3066\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u4fdd\u5b58\u3055\u308c\u3001\u307e\u305f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304b\u3089\u30ed\u30fc\u30c9\u3055\u308c\u307e\u3059\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>type</code></b></td><td><code>PHP</code>\u8868\u73fe\u3068\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u8868\u73fe\u3068\u306e\u9593\u3067\u5909\u63db\u3055\u308c\u308b<code>Doctrine</code> <code>Type</code>\u306e\u540d\u524d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5217\u540d\u306b\u5bfe\u3057\u3066\u3082\u30d7\u30ed\u30d1\u30c6\u30a3\u540d\u304c\u4f7f\u7528\u3055\u308c\u307e\u3059\u304c\u3001<code>name</code>\u5c5e\u6027\u3092\u4f7f\u7528\u3059\u308b\u3068\u5217\u540d\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>length</code></b></td><td>\u6587\u5b57\u5217\u578b\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u6587\u5b57\u5217\u306e\u6700\u5927\u9577\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<code>Doctrine</code>\u3067\u306f\u3001\u6587\u5b57\u5217\u5024\u306e\u9577\u3055\u306f\u81ea\u52d5\u7684\u306b\u691c\u8a3c\u3055\u308c\u307e\u305b\u3093\u3002</td></tr><tr><td valign="top"><b><code>precision</code></b></td><td>10\u9032(\u771f\u6570\u5024)\u5217\u306e\u7cbe\u5ea6(10\u9032\u5217\u306b\u306e\u307f\u9069\u7528)\u3002</td></tr><tr><td valign="top"><b><code>scale</code></b></td><td>10\u9032(\u771f\u6570\u5024)\u5217\u306e\u4f4d\u53d6\u308a(10\u9032\u5217\u306b\u306e\u307f\u9069\u7528)\u3002</td></tr><tr><td valign="top"><b><code>unique</code></b></td><td>\u57fa\u790e\u3068\u306a\u308b\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u8868\u306e\u3059\u3079\u3066\u306e\u884c\u3067\u5217\u306e\u5024\u3092\u4e00\u610f\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3059\u308b\u30d6\u30fc\u30eb\u5024\u3002</td></tr><tr><td valign="top"><b><code>nullable</code></b></td><td>\u3053\u306e\u5217\u306b<code>NULL</code>\u5024\u3092\u4f7f\u7528\u3067\u304d\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>columnDefinition</code></b></td><td>\u5217\u540d\u306e\u5f8c\u304b\u3089\u59cb\u307e\u3063\u3066\u5b8c\u5168\u306a(\u79fb\u690d\u6027\u306e\u306a\u3044)\u5217\u5b9a\u7fa9\u3092\u6307\u5b9a\u3059\u308b<code>DDL</code> <code>SQL</code>\u30b9\u30cb\u30da\u30c3\u30c8\u3002\u3053\u306e\u5c5e\u6027\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001<code>RMDBS</code>\u306e\u62e1\u5f35\u6a5f\u80fd\u3092\u5229\u7528\u3067\u304d\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u3053\u306e\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u969b\u306f\u305d\u306e\u7d50\u679c\u3092\u3088\u304f\u8003\u616e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<code>columnDefinition</code>\u3092\u4f7f\u7528\u3057\u305f\u5834\u5408\u3001<code>SchemaTool</code>\u306f\u5217\u306b\u5bfe\u3059\u308b\u5909\u66f4\u3092\u6b63\u5e38\u306b\u691c\u51fa\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002</td></tr></table>\n<p>\u307e\u305f\u3001<code>type</code>\u5c5e\u6027\u306b\u3088\u308a<code>PHP</code>\u5024\u3068\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5024\u306e\u9593\u306e\u5909\u63db\u304c\u5f15\u304d\u7d9a\u304d\u51e6\u7406\u3055\u308c\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u8868\u9593\u306e\u7d50\u5408\u306b\u4f7f\u7528\u3055\u308c\u308b\u5217\u306b\u3053\u306e\u5c5e\u6027\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001<code>@JoinColumn</code>\u306b\u3082\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Column(type="string", length=32, unique=true, nullable=false)\n\ */\nprotected $username;\n\n/**\n\ * @Column(type="string", columnDefinition="CHAR(2) NOT NULL")\n\ */\nprotected $country;\n\n/**\n\ * @Column(type="decimal", precision=2, scale=1)\n\ */\nprotected $height;\n</code></pre>
    2.45 -#ChangeTrackingPolicyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ChangeTrackingPolicy</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>ChangeTrackingPolicy</code>\u6ce8\u91c8\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30d5\u30e9\u30c3\u30b7\u30e5\u4e2d\u306b<code>Doctrine 2</code> <code>UnitOfWork</code>\u3067\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u5909\u66f4\u3092\u691c\u51fa\u3059\u308b\u65b9\u6cd5\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u3001\u9045\u5ef6\u3057\u305f\u6697\u9ed9\u7684\u306a\u65b9\u91dd\u306b\u5f93\u3063\u3066\u5404\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u304c\u30c1\u30a7\u30c3\u30af\u3055\u308c\u307e\u3059\u3002\u3064\u307e\u308a\u3001\u30d5\u30e9\u30c3\u30b7\u30e5\u6642\u306b<code>UnitOfWork</code>\u306b\u3088\u3063\u3066\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u3059\u3079\u3066\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u304c\u4ee5\u524d\u306b\u683c\u7d0d\u3055\u308c\u305f\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u3068\u6bd4\u8f03\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306f\u8ffd\u52a0\u8a2d\u5b9a\u306a\u3057\u3067\u884c\u308f\u308c\u307e\u3059\u304c\u3001\u5225\u306e\u5909\u66f4\u8ffd\u8de1\u30dd\u30ea\u30b7\u30fc\u3092\u4f7f\u7528\u3057\u3066\u30d5\u30e9\u30c3\u30b7\u30e5\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u8abf\u6574\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>\n/**\n\ * @Entity\n\ * @ChangeTrackingPolicy("DEFERRED_IMPLICIT")\n\ * @ChangeTrackingPolicy("DEFERRED_EXPLICIT")\n\ * @ChangeTrackingPolicy("NOTIFY")\n\ */\nclass User {}\n</code></pre>
    2.46 -#DiscriminatorColumnTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorColumn</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u306e\u6ce8\u91c8\u306f\u3001\u7d99\u627f\u968e\u5c64\u306e\u6700\u4e0a\u4f4d\u30af\u30e9\u30b9/\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9\u306b\u5fc5\u9808\u306e\u6ce8\u91c8\u3067\u3059\u3002\u30af\u30e9\u30b9\u540d\u3092\u4fdd\u5b58\u3059\u308b\u5217\u306e\u8a73\u7d30\u3092\u6307\u5b9a\u3059\u308b\u3082\u306e\u3067\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306f\u5b9f\u969b\u306b\u306f\u3053\u306e\u6ce8\u91c8\u3068\u3057\u3066\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3055\u308c\u307e\u3059\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>discriminator\u306e\u5217\u540d\u3002\u3053\u306e\u540d\u524d\u306f\u3001\u914d\u5217\u30cf\u30a4\u30c9\u30ec\u30fc\u30b7\u30e7\u30f3\u4e2d\u306b\u3001\u30af\u30e9\u30b9\u540d\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306e\u30ad\u30fc\u3068\u3057\u3066\u3082\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>type</code></b></td><td>\u30c7\u30d5\u30a9\u30eb\u30c8\u306f<code>string</code>\u3067\u3059\u3002</td></tr><tr><td valign="top"><b><code>length</code></b></td><td>\u30c7\u30d5\u30a9\u30eb\u30c8\u306f<code>255</code>\u3067\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @InheritanceType("JOINED")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\    // ...\n}\n</code></pre>
    2.47 -#DiscriminatorMapTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorMap</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>DiscriminatorMap</code>\u306f\u3001\u7d99\u627f\u968e\u5c64\u5185\u306e\u6700\u4e0a\u4f4d\u30af\u30e9\u30b9/\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9\u306b\u5fc5\u9808\u306e\u6ce8\u91c8\u3067\u3059\u3002\u3053\u308c\u306f\u3001\u3069\u306e\u30af\u30e9\u30b9\u3092\u3069\u306e\u540d\u524d\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u4fdd\u5b58\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u304b\u3092\u5b9a\u7fa9\u3059\u308b\u552f\u4e00\u306e\u5f15\u6570\u3068\u3057\u3066\u914d\u5217\u3092\u53d6\u308a\u307e\u3059\u3002\u30ad\u30fc\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5024\u3001\u5024\u306f\u30af\u30e9\u30b9\u3067\u3059(\u30af\u30e9\u30b9\u304c\u540d\u524d\u7a7a\u9593\u306b\u3042\u308b\u304b\u3069\u3046\u304b\u306b\u3088\u3063\u3066\u3001\u5b8c\u5168\u4fee\u98fe\u30af\u30e9\u30b9\u540d\u307e\u305f\u306f\u975e\u4fee\u98fe\u30af\u30e9\u30b9\u540d)\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @InheritanceType("JOINED")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\    // ...\n}\n</code></pre>
    2.48 -#Doctrine2OrmAnnotationsProvider.name=Doctrine2 ORM
    2.49 -#EntityTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Entity</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>PHP</code>\u30af\u30e9\u30b9\u3092<code>Entity</code>\u3068\u3057\u3066\u30de\u30fc\u30af\u3059\u308b\u305f\u3081\u306b\u5fc5\u9808\u6ce8\u91c8\u3002<code>Doctrine</code>\u306f\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u305f\u3059\u3079\u3066\u306e\u30af\u30e9\u30b9\u306e\u6301\u7d9a\u6027\u3092\u7ba1\u7406\u3057\u307e\u3059\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>repositoryClass</code></b></td><td><code>EntityRepository</code>\u306e\u30b5\u30d6\u30af\u30e9\u30b9\u306e<code>FQCN</code>\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u7279\u6b8a\u5316\u3055\u308c\u305f<code>DQL</code>\u64cd\u4f5c\u304a\u3088\u3073<code>SQL</code>\u64cd\u4f5c\u3092<code>Model</code>/<code>Domain</code>\u30ec\u30a4\u30e4\u30fc\u304b\u3089\u5207\u308a\u96e2\u3057\u3066\u304a\u304f\u305f\u3081\u306b\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306b\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3092\u304a\u85a6\u3081\u3057\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>readOnly</code></b></td><td>(>= 2.1) \u3053\u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u3092\u8aad\u53d6\u308a\u5c02\u7528\u3068\u3057\u3066\u30de\u30fc\u30af\u3057\u3001\u5909\u66f4\u8ffd\u8de1\u306b\u95a2\u3057\u3066\u8003\u616e\u3057\u306a\u3044\u3053\u3068\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u3053\u306e\u30bf\u30a4\u30d7\u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u3092\u6301\u7d9a\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306b\u3057\u305f\u308a\u3001\u524a\u9664\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @Entity(repositoryClass="MyProject\\UserRepository")\n\ */\nclass User {\n\    //...\n}\n</code></pre>
    2.50 -#GeneratedValueTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@GeneratedValue</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>@Id</code>\u6ce8\u91c8\u4ed8\u304d\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u306b\u5bfe\u3059\u308b\u8b58\u5225\u5b50\u751f\u6210\u306b\u4f7f\u7528\u3055\u308c\u308b\u65b9\u91dd\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u3053\u306e\u6ce8\u91c8\u306f\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3042\u308a\u3001<code>@Id</code>\u3068\u3068\u3082\u306b\u4f7f\u7528\u3055\u308c\u305f\u5834\u5408\u306b\u306e\u307f\u610f\u5473\u304c\u3042\u308a\u307e\u3059\u3002</p>\n<p>\u3053\u306e\u6ce8\u91c8\u304c<code>@Id</code>\u3068\u3068\u3082\u306b\u6307\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u3001<code>NONE</code>\u65b9\u91dd\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3068\u3057\u3066\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>strategy</code></b></td><td>\u8b58\u5225\u5b50\u751f\u6210\u65b9\u91dd\u306e\u540d\u524d\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002\u6709\u52b9\u306a\u5024\u306f\u3001<code>AUTO</code>\u3001<code>SEQUENCE</code>\u3001<code>TABLE</code>\u3001<code>IDENTITY</code>\u304a\u3088\u3073<code>NONE</code>\u3067\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @Id\n\ * @Column(type="integer")\n\ * @generatedValue(strategy="IDENTITY")\n\ */\nprotected $id = null;\n</code></pre>
    2.51 -#HasLifecycleCallbacksTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@HasLifecycleCallbacks</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u306e\u6ce8\u91c8\u306f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9<code>PHP</code> <code>DocBlock</code>\u306b\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u30e1\u30bd\u30c3\u30c9\u306e\u5c11\u306a\u304f\u3068\u30821\u3064\u306b\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30e9\u30a4\u30d5\u30b5\u30a4\u30af\u30eb\u30fb\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u6ce8\u91c8\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092<code>Doctrine</code>\u306b\u901a\u77e5\u3057\u307e\u3059\u3002\u3053\u306e\u30de\u30fc\u30ab\u30fc\u6ce8\u91c8\u306a\u3057\u3067<code>@PostLoad</code>\u3001<code>@PrePersist</code>\u3001<code>@PostPersist</code>\u3001<code>@PreRemove</code>\u3001<code>@PostRemove</code>\u3001<code>@PreUpdate</code>\u307e\u305f\u306f<code>@PostUpdate</code>\u3092\u4f7f\u7528\u3057\u305f\u5834\u5408\u3001<code>Doctrine</code>\u3067\u306f\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u304c\u7121\u8996\u3055\u308c\u307e\u3059\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @HasLifecycleCallbacks\n\ */\nclass User {\n\    /**\n\     * @PostPersist\n\     */\n\    public function sendOptinMail() {}\n}\n</code></pre>
    2.52 -#IndexTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Index</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u306e\u6ce8\u91c8\u306f\u3001<code>@Table</code>\u6ce8\u91c8\u5185\u90e8\u3067\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9\u30fb\u30ec\u30d9\u30eb\u3067\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u6307\u5b9a\u3057\u305f\u8868\u5217\u306b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u7d22\u5f15\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u3088\u3046\u306b<code>SchemaTool</code>\u306b\u6307\u793a\u3057\u307e\u3059\u3002\u3053\u306e\u6ce8\u91c8\u306f\u3001<code>SchemaTool</code>\u30b9\u30ad\u30fc\u30de\u751f\u6210\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306b\u304a\u3044\u3066\u306e\u307f\u610f\u5473\u3092\u6301\u3061\u307e\u3059\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td><code>Index</code>\u306e\u540d\u524d\u3002</td></tr><tr><td valign="top"><b><code>columns</code></b></td><td>\u5217\u306e\u914d\u5217\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @Table(name="ecommerce_products",indexes={@index(name="search_idx", columns={"name", "email"})})\n\ */\nclass ECommerceProduct {\n}\n</code></pre>
    2.53 -#IdTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Id</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u6ce8\u91c8\u4ed8\u304d\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u306f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u8b58\u5225\u5b50(\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u4e3b\u30ad\u30fc)\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u6ce8\u91c8\u306f\u5358\u306a\u308b\u30de\u30fc\u30ab\u30fc\u3067\u3042\u308a\u3001\u5fc5\u9808\u5c5e\u6027\u3082\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027\u3082\u3042\u308a\u307e\u305b\u3093\u3002\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306b\u8907\u6570\u306e\u8b58\u5225\u5b50\u5217\u304c\u3042\u308b\u5834\u5408\u3001\u5404\u5217\u3092<code>@Id</code>\u3067\u30de\u30fc\u30af\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @Id\n\ * @Column(type="integer")\n\ */\nprotected $id = null;\n</code></pre>
    2.54 -#InheritanceTypeTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@InheritanceType</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u7d99\u627f\u968e\u5c64\u5185\u3067\u306f\u3001\u6700\u4e0a\u4f4d\u30af\u30e9\u30b9/\u30b9\u30fc\u30d1\u30fc\u30af\u30e9\u30b9\u306b\u3053\u306e\u6ce8\u91c8\u3092\u4f7f\u7528\u3057\u3066\u3001\u7d99\u627f\u306b\u4f7f\u7528\u3059\u308b\u65b9\u91dd\u3092\u5b9a\u7fa9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u73fe\u5728\u3001<code>Single Table</code>\u304a\u3088\u3073<code>Class Table</code>\u7d99\u627f\u304c\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\u3002</p>\n<p>\u3053\u306e\u6ce8\u91c8\u306f\u5e38\u306b<code>@DiscriminatorMap</code>\u6ce8\u91c8\u304a\u3088\u3073<code>@DiscriminatorColumn</code>\u6ce8\u91c8\u3068\u3068\u3082\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @InheritanceType("SINGLE_TABLE")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\    // ...\n}\n\n/**\n\ * @Entity\n\ * @InheritanceType("JOINED")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\    // ...\n}\n</code></pre>
    2.55 -#JoinColumnTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@JoinColumn</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u306e\u6ce8\u91c8\u306f\u3001<code>@ManyToOne</code>\u30d5\u30a3\u30fc\u30eb\u30c9\u307e\u305f\u306f<code>@OneToOne</code>\u30d5\u30a3\u30fc\u30eb\u30c9\u5185\u306e\u95a2\u4fc2\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3084\u3001<code>@ManyToMany</code>\u5185\u306b\u30cd\u30b9\u30c8\u3055\u308c\u305f<code>@JoinTable</code>\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306b\u304a\u3044\u3066\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u6ce8\u91c8\u306f\u5fc5\u9808\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u3053\u306e\u6ce8\u91c8\u3092\u6307\u5b9a\u3057\u306a\u3044\u5834\u5408\u3001<code>name</code>\u5c5e\u6027\u304a\u3088\u3073<code>referencedColumnName</code>\u5c5e\u6027\u306f\u8868\u304a\u3088\u3073\u4e3b\u30ad\u30fc\u306e\u540d\u524d\u304b\u3089\u63a8\u6e2c\u3055\u308c\u307e\u3059\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u3053\u306e\u95a2\u4fc2\u306e\u5916\u90e8\u30ad\u30fc\u8b58\u5225\u5b50\u3092\u542b\u3080\u5217\u540d\u3002<code>@JoinTable</code>\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306b\u304a\u3044\u3066\u306f\u3001\u7d50\u5408\u8868\u306e\u5217\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>referencedColumnName</code></b></td><td>\u3053\u306e\u95a2\u4fc2\u3092\u7d50\u5408\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b\u4e3b\u30ad\u30fc\u8b58\u5225\u5b50\u306e\u540d\u524d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>unique</code></b></td><td>\u5f71\u97ff\u3092\u53d7\u3051\u308b\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u9593\u3067\u3053\u306e\u95a2\u4fc2\u3092\u6392\u4ed6\u7684\u306b\u3057\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5236\u7d04\u30ec\u30d9\u30eb\u3067\u9069\u7528\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f<code>false</code>\u3067\u3059\u3002</td></tr><tr><td valign="top"><b><code>nullable</code></b></td><td>\u95a2\u9023\u3059\u308b\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u3092\u5fc5\u9808\u306b\u3059\u308b\u304b\u3001\u3042\u308b\u3044\u306f\u3053\u306e\u95a2\u4fc2\u306b<code>null</code>\u72b6\u614b\u3092\u8a31\u53ef\u3059\u308b\u304b\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f<code>true</code>\u3067\u3059\u3002</td></tr><tr><td valign="top"><b><code>onDelete</code></b></td><td>\u30ab\u30b9\u30b1\u30fc\u30c9\u30fb\u30a2\u30af\u30b7\u30e7\u30f3(\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30fb\u30ec\u30d9\u30eb)\u3002</td></tr><tr><td valign="top"><b><code>columnDefinition</code></b></td><td>\u5217\u540d\u306e\u5f8c\u306b\u958b\u59cb\u3055\u308c\u3066\u5b8c\u5168\u306a(\u79fb\u690d\u6027\u306e\u306a\u3044)\u5217\u5b9a\u7fa9\u3092\u6307\u5b9a\u3059\u308b<code>DDL</code> <code>SQL</code>\u30b9\u30cb\u30da\u30c3\u30c8\u3002\u3053\u306e\u5c5e\u6027\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001<code>RMDBS</code>\u306e\u62e1\u5f35\u6a5f\u80fd\u3092\u5229\u7528\u3067\u304d\u307e\u3059\u3002\u5217\u306e\u7d50\u5408\u3067\u308f\u305a\u304b\u306b\u7570\u306a\u308b\u5217\u5b9a\u7fa9\u3092\u6307\u5b9a\u3059\u308b\u5834\u5408(\u30c7\u30d5\u30a9\u30eb\u30c8\u304c<code>NULL</code>\u3068<code>NOT NULL</code>\u3067\u9055\u3046\u306a\u3069)\u3001<code>@JoinColumn</code>\u306b\u3053\u306e\u5c5e\u6027\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f<code>@Column</code>\u306b<code>columnDefinition</code>\u5c5e\u6027\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u3068\u3001\u95a2\u9023\u3059\u308b<code>@JoinColumn</code>\u306ecolumnDefinition\u3082\u8a2d\u5b9a\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306f\u5916\u90e8\u30ad\u30fc\u304c\u6a5f\u80fd\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u3067\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @OneToOne(targetEntity="Customer")\n\ * @JoinColumn(name="customer_id", referencedColumnName="id")\n\ */\nprivate $customer;\n</code></pre>
    2.56 -#JoinColumnsTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@JoinColumns</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u8907\u6570\u306e\u8b58\u5225\u5b50\u3092\u6301\u3064\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u3068\u306e<code>@ManyToOne</code>\u95a2\u4fc2\u307e\u305f\u306f<code>@OneToOne</code>\u95a2\u4fc2\u3092\u793a\u3059\u3001<code>@JoinColumn</code>\u6ce8\u91c8\u306e\u914d\u5217\u3002</p>
    2.57 -#JoinTableTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@JoinTable</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u95a2\u4fc2\u306e\u6240\u6709\u5074\u306b<code>@OneToMany</code>\u307e\u305f\u306f<code>@ManyToMany</code>\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u7d50\u5408\u8868\u306e\u8a73\u7d30\u3092\u8aac\u660e\u3059\u308b<code>@JoinTable</code>\u6ce8\u91c8\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u95a2\u4fc2\u306b<code>@JoinTable</code>\u3092\u6307\u5b9a\u3057\u306a\u3044\u5834\u5408\u3001\u5f71\u97ff\u3092\u53d7\u3051\u308b\u8868\u304a\u3088\u3073\u5217\u306e\u540d\u524d\u3092\u4f7f\u7528\u3057\u3066\u9069\u5207\u306a\u30de\u30c3\u30d4\u30f3\u30b0\u30fb\u30c7\u30d5\u30a9\u30eb\u30c8\u304c\u9069\u7528\u3055\u308c\u307e\u3059\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u7d50\u5408\u8868\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u540d\u3002</td></tr><tr><td valign="top"><b><code>joinColumns</code></b></td><td>\u6240\u6709\u5074\u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u8868\u3068\u7d50\u5408\u8868\u306e\u9593\u306e\u7d50\u5408\u95a2\u4fc2\u3092\u8aac\u660e\u3059\u308b<code>@JoinColumn</code>\u6ce8\u91c8\u306e\u914d\u5217\u3002</td></tr><tr><td valign="top"><b><code>inverseJoinColumns</code></b></td><td>\u88ab\u6240\u6709\u5074\u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u8868\u3068\u7d50\u5408\u8868\u306e\u9593\u306e\u7d50\u5408\u95a2\u4fc2\u3092\u8aac\u660e\u3059\u308b<code>@JoinColumn</code>\u6ce8\u91c8\u306e\u914d\u5217\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @ManyToMany(targetEntity="Phonenumber")\n\ * @JoinTable(name="users_phonenumbers",\n\ *      joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},\n\ *      inverseJoinColumns={@JoinColumn(name="phonenumber_id", referencedColumnName="id", unique=true)}\n\ * )\n\ */\npublic $phonenumbers;\n</code></pre>
    2.58 -#ManyToOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ManyToOne</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u6ce8\u91c8\u4ed8\u304d\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u306b\u30012\u3064\u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u9593\u306e\u591a\u5bfe1\u95a2\u4fc2\u3092\u8aac\u660e\u3059\u308b\u53c2\u7167\u304c\u542b\u307e\u308c\u308b\u3053\u3068\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td>\u53c2\u7167\u5148\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e<code>FQCN</code>\u3002\u4e21\u65b9\u306e\u30af\u30e9\u30b9\u304c\u540c\u3058\u540d\u524d\u7a7a\u9593\u306b\u3042\u308c\u3070\u3001\u975e\u4fee\u98fe\u30af\u30e9\u30b9\u540d\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<b>\u91cd\u8981:</b> \u5148\u982d\u306b\u30d0\u30c3\u30af\u30b9\u30e9\u30c3\u30b7\u30e5\u3092\u4ed8\u3051\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>cascade</code></b></td><td>\u30ab\u30b9\u30b1\u30fc\u30c9\u30fb\u30aa\u30d7\u30b7\u30e7\u30f3\u3002</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td><code>LAZY</code>\u304b<code>EAGER</code>\u306e\u3044\u305a\u308c\u304b\u3002</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td><code>inversedBy</code>\u5c5e\u6027\u306f\u3001\u95a2\u4fc2\u306e\u88ab\u6240\u6709\u5074\u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u5185\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @ManyToOne(targetEntity="Cart", cascade={"all"}, fetch="EAGER")\n\ */\nprivate $cart;\n</code></pre>
    2.59 -#ManyToManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ManyToMany</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>2\u3064\u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u9593\u306e\u591a\u5bfe\u591a\u95a2\u4fc2\u3092\u542b\u3080\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5909\u6570\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<code>@JoinTable</code>\u306f\u8ffd\u52a0\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u6ce8\u91c8\u3067\u3042\u308a\u30012\u3064\u306e\u95a2\u9023\u3059\u308b\u30a8\u30f3\u30c8\u30ea\u306e\u8868\u304a\u3088\u3073\u540d\u524d\u3092\u4f7f\u7528\u3057\u305f\u9069\u5207\u306a\u30c7\u30d5\u30a9\u30eb\u30c8\u69cb\u6210\u5024\u3092\u6301\u3061\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td>\u53c2\u7167\u5148\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e<code>FQCN</code>\u3002\u4e21\u65b9\u306e\u30af\u30e9\u30b9\u304c\u540c\u3058\u540d\u524d\u7a7a\u9593\u306b\u3042\u308c\u3070\u3001\u975e\u4fee\u98fe\u30af\u30e9\u30b9\u540d\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 <b>\u91cd\u8981:</b> \u5148\u982d\u306b\u30d0\u30c3\u30af\u30b9\u30e9\u30c3\u30b7\u30e5\u3092\u4ed8\u3051\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u3001\u3053\u306e\u95a2\u4fc2\u306e\u6240\u6709\u5074\u3067\u3042\u308b<code>targetEntity</code>\u306b\u30d7\u30ed\u30d1\u30c6\u30a3\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u95a2\u4fc2\u306e\u88ab\u6240\u6709\u5074\u306b\u306f\u5fc5\u9808\u306e\u5c5e\u6027\u3067\u3059\u3002</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td><code>inversedBy</code>\u5c5e\u6027\u306f\u3001\u95a2\u4fc2\u306e\u88ab\u6240\u6709\u5074\u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u5185\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002</td></tr><tr><td valign="top"><b><code>cascade</code></b></td><td>\u30ab\u30b9\u30b1\u30fc\u30c9\u30fb\u30aa\u30d7\u30b7\u30e7\u30f3\u3002</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td><code>LAZY</code>\u3001<code>EXTRA_LAZY</code>\u307e\u305f\u306f<code>EAGER</code>\u306e\u3044\u305a\u308c\u304b\u3002</td></tr><tr><td valign="top"><b><code>indexBy</code></b></td><td>\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306b\u5bfe\u3057\u3066\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u3088\u308a\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u7d22\u5f15\u3092\u4ed8\u3051\u307e\u3059\u3002</td></tr></table>\n<p><code>ManyToMany</code>\u53cc\u65b9\u5411\u95a2\u4fc2\u3067\u306f\u3001\u3069\u3061\u3089\u304b\u4e00\u65b9\u3092\u6240\u6709\u5074(<code>@JoinTable</code>\u3092\u5b9a\u7fa9\u3057\u3066\u3044\u308b\u5074\u3001\u307e\u305f\u306f<code>mappedBy</code>\u5c5e\u6027\u3092\u4f7f\u7528\u305b\u305a\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u7d50\u5408\u8868\u3092\u4f7f\u7528\u3059\u308b\u5074)\u306b\u3067\u304d\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * Owning Side\n\ *\n\ * @ManyToMany(targetEntity="Group", inversedBy="features")\n\ * @JoinTable(name="user_groups",\n\ *      joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},\n\ *      inverseJoinColumns={@JoinColumn(name="group_id", referencedColumnName="id")}\n\ *      )\n\ */\nprivate $groups;\n\n/**\n\ * Inverse Side\n\ *\n\ * @ManyToMany(targetEntity="User", mappedBy="groups")\n\ */\nprivate $features;\n</code></pre>
    2.60 -#MappedSuperclassTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@MappedSuperclass</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>Mapped Superclass\u306f\u3001\u305d\u306e\u30b5\u30d6\u30af\u30e9\u30b9\u306e\u6301\u7d9a\u7684\u306a\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u72b6\u614b\u304a\u3088\u3073\u30de\u30c3\u30d4\u30f3\u30b0\u60c5\u5831\u3092\u63d0\u4f9b\u3059\u308b\u304c\u3001\u305d\u308c\u81ea\u4f53\u306f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u3067\u306f\u306a\u3044\u62bd\u8c61\u30af\u30e9\u30b9\u307e\u305f\u306f\u5177\u8c61\u30af\u30e9\u30b9\u3067\u3059\u3002\u3053\u306e\u6ce8\u91c8\u306f<code>Class<code> <code>DocBlock</code>\u306b\u6307\u5b9a\u3055\u308c\u3001\u8ffd\u52a0\u306e\u5c5e\u6027\u3092\u6301\u3061\u307e\u305b\u3093\u3002</p><p><code>@MappedSuperclass</code>\u6ce8\u91c8\u3092<code>@Entity</code>\u3068\u3068\u3082\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>repositoryClass</code></b></td><td>(>= 2.2) <code>EntityRepository</code>\u306e\u30b5\u30d6\u30af\u30e9\u30b9\u306e<code>FQCN</code>\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u305d\u306e<code>Mapped Superclass</code>\u306e\u3059\u3079\u3066\u306e\u30b5\u30d6\u30af\u30e9\u30b9\u306b\u3064\u3044\u3066\u7d99\u627f\u3055\u308c\u307e\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @MappedSuperclass\n\ */\nclass MappedSuperclassBase {\n\    // ... fields and methods\n}\n\n/**\n\ * @Entity\n\ */\nclass EntitySubClassFoo extends MappedSuperclassBase {\n\    // ... fields and methods\n}\n</code></pre>
    2.61 -#OneToOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@OneToOne</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p><code>@OneToOne</code>\u6ce8\u91c8\u306e\u6a5f\u80fd\u306f<code>@ManyToOne</code>\u3068\u307b\u307c\u540c\u3058\u3067\u3059\u304c\u3001\u6307\u5b9a\u53ef\u80fd\u306a\u8ffd\u52a0\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u304c1\u3064\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u6ce8\u91c8\u3067\u3082\u3001\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u8868\u304a\u3088\u3073\u4e3b\u30ad\u30fc\u5217\u306e\u540d\u524d\u3092\u4f7f\u7528\u3057\u305f<code>@JoinColumn</code>\u306e\u69cb\u6210\u30c7\u30d5\u30a9\u30eb\u30c8\u304c\u9069\u7528\u3055\u308c\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td>\u53c2\u7167\u5148\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e<code>FQCN</code>\u3002\u4e21\u65b9\u306e\u30af\u30e9\u30b9\u304c\u540c\u3058\u540d\u524d\u7a7a\u9593\u306b\u3042\u308c\u3070\u3001\u975e\u4fee\u98fe\u30af\u30e9\u30b9\u540d\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<b>\u91cd\u8981:</b> \u5148\u982d\u306b\u30d0\u30c3\u30af\u30b9\u30e9\u30c3\u30b7\u30e5\u3092\u4ed8\u3051\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>cascade</code></b></td><td>\u30ab\u30b9\u30b1\u30fc\u30c9\u30fb\u30aa\u30d7\u30b7\u30e7\u30f3\u3002</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td><code>LAZY</code>\u304b<code>EAGER</code>\u306e\u3044\u305a\u308c\u304b\u3002</td></tr><tr><td valign="top"><b><code>orphanRemoval</code></b></td><td><code>Doctrine</code>\u3067\u89aa\u306e\u306a\u3044\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3(\u6240\u6709\u5074\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306b\u63a5\u7d9a\u3055\u308c\u3066\u3044\u306a\u3044\u88ab\u6240\u6709\u5074<code>OneToOne</code>\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3)\u3092\u524a\u9664\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3059\u308b\u30d6\u30fc\u30eb\u5024\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f<code>false</code>\u3067\u3059\u3002</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td><code>inversedBy</code>\u5c5e\u6027\u306f\u3001\u95a2\u4fc2\u306e\u88ab\u6240\u6709\u5074\u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u5185\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @OneToOne(targetEntity="Customer")\n\ * @JoinColumn(name="customer_id", referencedColumnName="id")\n\ */\nprivate $customer;\n</code></pre>
    2.62 -#OneToManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@OneToMany</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td>\u53c2\u7167\u5148\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e<code>FQCN</code>\u3002\u4e21\u65b9\u306e\u30af\u30e9\u30b9\u304c\u540c\u3058\u540d\u524d\u7a7a\u9593\u306b\u3042\u308c\u3070\u3001\u975e\u4fee\u98fe\u30af\u30e9\u30b9\u540d\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<b>\u91cd\u8981:</b> \u5148\u982d\u306b\u30d0\u30c3\u30af\u30b9\u30e9\u30c3\u30b7\u30e5\u3092\u4ed8\u3051\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>cascade</code></b></td><td>\u30ab\u30b9\u30b1\u30fc\u30c9\u30fb\u30aa\u30d7\u30b7\u30e7\u30f3\u3002</td></tr><tr><td valign="top"><b><code>orphanRemoval</code></b></td><td><code>Doctrine</code>\u3067\u89aa\u306e\u306a\u3044\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3(\u6240\u6709\u5074\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306b\u63a5\u7d9a\u3055\u308c\u3066\u3044\u306a\u3044\u88ab\u6240\u6709\u5074<code>OneToOne</code>\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3)\u3092\u524a\u9664\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3059\u308b\u30d6\u30fc\u30eb\u5024\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f<code>false</code>\u3067\u3059\u3002</td></tr><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u3001\u3053\u306e\u95a2\u4fc2\u306e\u6240\u6709\u5074\u3067\u3042\u308b<code>targetEntity</code>\u306b\u30d7\u30ed\u30d1\u30c6\u30a3\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u95a2\u4fc2\u306e\u88ab\u6240\u6709\u5074\u306b\u306f\u5fc5\u9808\u306e\u5c5e\u6027\u3067\u3059\u3002</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td><code>LAZY</code>\u3001<code>EXTRA_LAZY</code>\u307e\u305f\u306f<code>EAGER</code>\u306e\u3044\u305a\u308c\u304b\u3002</td></tr><tr><td valign="top"><b><code>indexBy</code></b></td><td>\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306b\u5bfe\u3057\u3066\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u3088\u308a\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306b\u7d22\u5f15\u3092\u4ed8\u3051\u307e\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @OneToMany(targetEntity="Phonenumber", mappedBy="user", cascade={"persist", "remove", "merge"}, orphanRemoval=true)\n\ */\npublic $phonenumbers;\n</code></pre>
    2.63 -#OrderByTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@OrderBy</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u308c\u306f\u30aa\u30d7\u30b7\u30e7\u30f3\u6ce8\u91c8\u3067\u3042\u308a\u3001<code>@ManyToMany</code>\u6ce8\u91c8\u307e\u305f\u306f<code>@OneToMany</code>\u6ce8\u91c8\u3068\u3068\u3082\u306b\u6307\u5b9a\u3059\u308b\u3068\u3001<code>ORDER BY</code>\u53e5\u3092\u4f7f\u7528\u3057\u3066\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304b\u3089\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u53d6\u5f97\u3059\u308b\u6761\u4ef6\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002</p><p>\u3053\u306e\u6ce8\u91c8\u306b\u306f\u3001\u5c5e\u6027\u306e\u306a\u3044\u50241\u3064\u304a\u3088\u3073<code>DQL</code>\u30b9\u30cb\u30da\u30c3\u30c8\u304c\u5fc5\u8981\u3067\u3059:</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @ManyToMany(targetEntity="Group")\n\ * @OrderBy({"name" = "ASC"})\n\ */\nprivate $groups;\n</code></pre>\n<p><code>OrderBy</code>\u5185\u306e<code>DQL</code>\u30b9\u30cb\u30da\u30c3\u30c8\u306f\u3001\u5f15\u7528\u7b26\u306a\u3057\u306e\u975e\u4fee\u98fe\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3068\u3001\u30aa\u30d7\u30b7\u30e7\u30f3\u306e<code>ASC</code>/<code>DESC</code>\u4f4d\u7f6e\u6587\u306e\u307f\u3067\u69cb\u6210\u3067\u304d\u307e\u3059\u3002\u8907\u6570\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306f\u30ab\u30f3\u30de(,)\u3067\u533a\u5207\u308a\u307e\u3059\u3002<code>@ManyToMany</code>\u6ce8\u91c8\u307e\u305f\u306f<code>@OneToMany</code>\u6ce8\u91c8\u306e<code>targetEntity</code>\u30af\u30e9\u30b9\u306b\u306f\u53c2\u7167\u5148\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u304c\u5b58\u5728\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002</p>
    2.64 -#PostLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostLoad</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PostLoad</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9<code>PHP</code> <code>DocBlock</code>\u5185\u3067<code>@HasLifecycleCallbacks</code>\u3068\u3068\u3082\u306b\u4f7f\u7528\u3057\u305f\u5834\u5408\u306e\u307f\u6709\u52b9\u3067\u3059\u3002</p>
    2.65 -#PostPersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostPersist</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PostPersist</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9<code>PHP</code> <code>DocBlock</code>\u5185\u3067<code>@HasLifecycleCallbacks</code>\u3068\u3068\u3082\u306b\u4f7f\u7528\u3057\u305f\u5834\u5408\u306e\u307f\u6709\u52b9\u3067\u3059\u3002</p>
    2.66 -#PostRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostRemove</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PostRemove</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9<code>PHP</code> <code>DocBlock</code>\u5185\u3067<code>@HasLifecycleCallbacks</code>\u3068\u3068\u3082\u306b\u4f7f\u7528\u3057\u305f\u5834\u5408\u306e\u307f\u6709\u52b9\u3067\u3059\u3002</p>
    2.67 -#PostUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PostUpdate</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9<code>PHP</code> <code>DocBlock</code>\u5185\u3067<code>@HasLifecycleCallbacks</code>\u3068\u3068\u3082\u306b\u4f7f\u7528\u3057\u305f\u5834\u5408\u306e\u307f\u6709\u52b9\u3067\u3059\u3002</p>
    2.68 -#PrePersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PrePersist</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PrePersist</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9<code>PHP</code> <code>DocBlock</code>\u5185\u3067<code>@HasLifecycleCallbacks</code>\u3068\u3068\u3082\u306b\u4f7f\u7528\u3057\u305f\u5834\u5408\u306e\u307f\u6709\u52b9\u3067\u3059\u3002</p>
    2.69 -#PreRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreRemove</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PreRemove</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9<code>PHP</code> <code>DocBlock</code>\u5185\u3067<code>@HasLifecycleCallbacks</code>\u3068\u3068\u3082\u306b\u4f7f\u7528\u3057\u305f\u5834\u5408\u306e\u307f\u6709\u52b9\u3067\u3059\u3002</p>
    2.70 -#PreUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u30e1\u30bd\u30c3\u30c9\u3092<code>@PreUpdate</code>\u30a4\u30d9\u30f3\u30c8\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u308b\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059\u3002\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9<code>PHP</code> <code>DocBlock</code>\u5185\u3067<code>@HasLifecycleCallbacks</code>\u3068\u3068\u3082\u306b\u4f7f\u7528\u3057\u305f\u5834\u5408\u306e\u307f\u6709\u52b9\u3067\u3059\u3002</p>
    2.71 -#SequenceGeneratorTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@SequenceGenerator</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u306e\u6ce8\u91c8\u3092<code>@generatedValue(strategy="SEQUENCE")</code>\u3068\u3068\u3082\u306b\u4f7f\u7528\u3059\u308b\u3068\u3001\u30b7\u30fc\u30b1\u30f3\u30b9\u306e\u8a73\u7d30(\u30b7\u30fc\u30b1\u30f3\u30b9\u306e\u5897\u5206\u30b5\u30a4\u30ba\u3084\u521d\u671f\u5024\u306a\u3069)\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>sequenceName</code></b></td><td>\u30b7\u30fc\u30b1\u30f3\u30b9\u306e\u540d\u524d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>allocationSize</code></b></td><td>\u30d5\u30a7\u30c3\u30c1\u3055\u308c\u305f\u3068\u304d\u306b\u30b7\u30fc\u30b1\u30f3\u30b9\u3092\u5272\u5f53\u3066\u30b5\u30a4\u30ba\u5206\u306e\u307f\u5897\u5206\u3057\u307e\u3059\u30021\u3088\u308a\u5927\u304d\u3044\u5024\u3092\u6307\u5b9a\u3059\u308b\u3068\u30011\u3064\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u306b\u8907\u6570\u306e\u65b0\u898f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u3092\u4f5c\u6210\u3059\u308b\u5834\u5408\u306b\u6700\u9069\u5316\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f10\u3067\u3059\u3002</code></td></tr><tr><td valign="top"><b><code>initialValue</code></b></td><td>\u30b7\u30fc\u30b1\u30f3\u30b9\u306e\u958b\u59cb\u5024\u3067\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306f<code>1</code>\u3067\u3059\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @Id\n\ * @GeneratedValue(strategy="SEQUENCE")\n\ * @Column(type="integer")\n\ * @SequenceGenerator(sequenceName="tablename_seq", initialValue=1, allocationSize=100)\n\ */\nprotected $id = null;\n</code></pre>
    2.72 -#TableTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Table</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u306e\u6ce8\u91c8\u306f\u3001\u6301\u7d9a\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u304c\u542b\u307e\u308c\u308b\u8868\u3092\u8aac\u660e\u3057\u307e\u3059\u3002\u3053\u306e\u6ce8\u91c8\u306f\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9<code>PHP</code> <code>DocBlock</code>\u5185\u306b\u6307\u5b9a\u3057\u307e\u3059\u3002\u3053\u308c\u3092\u6307\u5b9a\u3057\u306a\u3044\u5834\u5408\u3001\u8868\u540d\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u975e\u4fee\u98fe\u30af\u30e9\u30b9\u540d\u306b\u8a2d\u5b9a\u3055\u308c\u307e\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u8868\u306e\u540d\u524d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>indexes</code></b></td><td><code>@Index</code>\u6ce8\u91c8\u306e\u914d\u5217\u3002</td></tr><tr><td valign="top"><b><code>uniqueConstraints</code></b></td><td><code>@UniqueConstraint</code>\u6ce8\u91c8\u306e\u914d\u5217\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @Table(name="user",\n\ *      uniqueConstraints={@UniqueConstraint(name="user_unique",columns={"username"})},\n\ *      indexes={@Index(name="user_idx", columns={"email"})}\n\ * )\n\ */\nclass User {\n}\n</code></pre>
    2.73 -#UniqueConstraintTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@UniqueConstraint</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u3053\u306e\u6ce8\u91c8\u306f\u3001<code>@Table</code>\u6ce8\u91c8\u5185\u90e8\u3067\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fb\u30af\u30e9\u30b9\u30fb\u30ec\u30d9\u30eb\u3067\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u6307\u5b9a\u3057\u305f\u8868\u5217\u306b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u56fa\u6709\u306e\u5236\u7d04\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306e\u30d2\u30f3\u30c8\u3092<code>SchemaTool</code>\u306b\u63d0\u4f9b\u3057\u307e\u3059\u3002\u3053\u306e\u6ce8\u91c8\u306f\u3001<code>SchemaTool</code>\u30b9\u30ad\u30fc\u30de\u751f\u6210\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306b\u304a\u3044\u3066\u306e\u307f\u6709\u52b9\u3067\u3059\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9808\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u7d22\u5f15\u306e\u540d\u524d\u3002</td></tr><tr><td valign="top"><b><code>columns</code></b></td><td>\u5217\u306e\u914d\u5217\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @Table(name="ecommerce_products",uniqueConstraints={@UniqueConstraint(name="search_idx", columns={"name", "email"})})\n\ */\nclass ECommerceProduct {\n}\n</code></pre>
    2.74 -#VersionTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Version</p><p style="font-weight: bold; font-size: 1.1em">\u8aac\u660e</p><p>\u6307\u5b9a\u3057\u305f\u5217\u3092\u30aa\u30d7\u30c6\u30a3\u30df\u30b9\u30c6\u30a3\u30c3\u30af\u30fb\u30ed\u30c3\u30af\u306e\u30b7\u30ca\u30ea\u30aa\u3067\u4f7f\u7528\u3055\u308c\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u5c5e\u6027\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u30de\u30fc\u30ab\u30fc\u6ce8\u91c8\u3002<code>integer<code>\u578b\u307e\u305f\u306f<code>datetime</code>\u578b\u306e<code>@Column</code>\u6ce8\u91c8\u306b\u306e\u307f\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<code>@Version</code>\u3068<code>@Id</code>\u306e\u7d50\u5408\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u4f8b</p><pre><code>/**\n\ * @column(type="integer")\n\ * @version\n\ */\nprotected $version;\n</code></pre>
    2.75 -
     3.1 --- a/src/ru/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/odm/Bundle_ru.properties	Wed Jun 13 10:20:09 2012 +0900
     3.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.3 @@ -1,83 +0,0 @@
     3.4 -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     3.5 -#
     3.6 -# Copyright 2012 Oracle and/or its affiliates. All rights reserved.
     3.7 -#
     3.8 -# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
     3.9 -# Other names may be trademarks of their respective owners.
    3.10 -#
    3.11 -# The contents of this file are subject to the terms of either the GNU
    3.12 -# General Public License Version 2 only ("GPL") or the Common
    3.13 -# Development and Distribution License("CDDL") (collectively, the
    3.14 -# "License"). You may not use this file except in compliance with the
    3.15 -# License. You can obtain a copy of the License at
    3.16 -# http://www.netbeans.org/cddl-gplv2.html
    3.17 -# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    3.18 -# specific language governing permissions and limitations under the
    3.19 -# License.  When distributing the software, include this License Header
    3.20 -# Notice in each file and include the License file at
    3.21 -# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
    3.22 -# particular file as subject to the "Classpath" exception as provided
    3.23 -# by Oracle in the GPL Version 2 section of the License file that
    3.24 -# accompanied this code. If applicable, add the following below the
    3.25 -# License Header, with the fields enclosed by brackets [] replaced by
    3.26 -# your own identifying information:
    3.27 -# "Portions Copyrighted [year] [name of copyright owner]"
    3.28 -#
    3.29 -# If you wish your version of this file to be governed by only the CDDL
    3.30 -# or only the GPL Version 2, indicate your decision by adding
    3.31 -# "[Contributor] elects to include this software in this distribution
    3.32 -# under the [CDDL or GPL Version 2] license." If you do not indicate a
    3.33 -# single choice of license, a recipient has the option to distribute
    3.34 -# your version of this file under either the CDDL, the GPL Version 2 or
    3.35 -# to extend the choice of license to its licensees as provided above.
    3.36 -# However, if you add GPL Version 2 code and therefore, elected the GPL
    3.37 -# Version 2 license, then the option applies only if the new code is
    3.38 -# made subject to such option by the copyright holder.
    3.39 -#
    3.40 -# Contributor(s):
    3.41 -#
    3.42 -# Portions Copyrighted 2012 Sun Microsystems, Inc.
    3.43 -
    3.44 -AlsoLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@AlsoLoad</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 <code>mongodb</code> \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0437 \u043d\u0435\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Field\n\ * @AlsoLoad("oldFieldName")\n\ */\nprivate $fieldName;\n</code></pre>\n<p>\u0423\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>$fieldName</code> \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0438\u0437 <code>fieldName</code> \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 <code>oldFieldName</code>, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.</p>
    3.45 -BinTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Bin</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0414\u043b\u044f \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u0430 <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>bin</code>. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 <a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0438\u043f\u0430 <code>MongoBinData::BYTE_ARRAY</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ *@Bin\n\ */\nprivate $data;\n</code></pre>
    3.46 -BinCustomTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinCustom</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0414\u043b\u044f \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u0430 <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>bin_custom</code>. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 <a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0438\u043f\u0430 <code>MongoBinData::CUSTOM</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @BinCustom\n\ */\nprivate $data;\n</code></pre>
    3.47 -BinFuncTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinFunc</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0414\u043b\u044f \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u0430 <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>bin_func</code>. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 <a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0438\u043f\u0430 <code>MongoBinData::FUNC</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @BinFunc\n\ */\nprivate $data;\n</code></pre>
    3.48 -BinMd5Tag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinMD5</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0414\u043b\u044f \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u0430 <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>bin_md5</code>. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 <a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0438\u043f\u0430 <code>MongoBinData::MD5</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @BinMD5\n\ */\nprivate $password;\n</code></pre>
    3.49 -BinUuidTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinUUID</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0414\u043b\u044f \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u0430 <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>bin_uuid</code>. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 <a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0438\u043f\u0430 <code>MongoBinData::UUID</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435</p><pre><code>\n/**\n\ * @BinUUID\n\ */\nprivate $uuid;\n</code></pre>
    3.50 -BooleanTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Boolean</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0414\u043b\u044f \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u0430 <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>boolean</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Boolean\n\ */\nprivate $active;\n</code></pre>
    3.51 -CollectionTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Collection</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0414\u043b\u044f \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u0430 <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>collection</code>. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0438 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430.</p><p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>strategy</code></b></td><td>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>set</code> \u0438 <code>pushAll</code>, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>pushAll</code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Collection(strategy="pushAll")\n\ */\nprivate $tags = array();\n</code></pre>
    3.52 -DateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Date</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0414\u043b\u044f \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u0430 <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>date</code>. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 <a href="http://www.php.net/manual/en/class.mongodate.php">MongoDate</a> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0438\u043f\u0430 <code>MongoBinData::UUID</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Date\n\ */\nprivate $createdAt;\n</code></pre>
    3.53 -DiscriminatorFieldTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorField</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e/\u0441\u0443\u043f\u0435\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u043d\u0435\u0439 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.</p><p style="font-weight: bold; font-size: 1.1em">\u0422\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>fieldName</code></b></td><td>\u0418\u043c\u044f \u043f\u043e\u043b\u044f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u0430. \u0418\u043c\u044f \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0430 \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0438\u043c\u0435\u043d\u0438 \u043a\u043b\u0430\u0441\u0441\u0430.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ * @DiscriminatorField(fieldName="type")\n\ */\nclass SuperUser {\n\ // ...\n}\n</code></pre>
    3.54 -DiscriminatorMapTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorMap</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041a\u0430\u0440\u0442\u0430 \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0439 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439 \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e/\u0441\u0443\u043f\u0435\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u0430\u043a \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u043c \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043c\u0435\u043d\u0435\u043c. \u041a\u043b\u044e\u0447\u0438 - \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430, \u0442\u0430\u043a \u0438 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c\u0438 (\u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0435\u043d).</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ * @InheritanceType("SINGLE_COLLECTION")\n\ * @DiscriminatorField(fieldName="discr")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\ /**\n\ * @Field(type="string")\n\ */\n\ private $discr;\n\ // ...\n}\n</code></pre>
    3.55 -DistanceTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Distance</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e <code>@Distance</code> \u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 \u0433\u0435\u043e\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438, \u0430 \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 <code>$near</code> \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ * @Index(keys={"coordinates"="2d"})\n\ */\nclass Place {\n\ /**\n\ * @Id\n\ */\n\ public $id;\n\n\ /**\n\ * @EmbedOne(targetDocument="Coordinates")\n\ */\n\ public $coordinates;\n\n\ /**\n\ * @Distance\n\ */\n\ public $distance;\n}\n\n/**\n\ * @EmbeddedDocument\n\ */\nclass Coordinates {\n\ /**\n\ * @Float\n\ */\n\ public $latitude;\n\n\ /**\n\ * @Float\n\ */\n\ public $longitude;\n}\n</code></pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 <code>near()</code> \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044e. \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u0433\u043e\u0440\u043e\u0434\u0430:</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n$city = $this->dm->createQuery('City')\n\ ->field('coordinates')->near(50, 60)\n\ ->limit(1)\n\ ->getQuery()\n\ ->getSingleResult();\necho $city->distance;\n</code></pre>
    3.56 -Doctrine2OdmAnnotationsProvider.name=Doctrine2 ODM
    3.57 -DocumentTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Document</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0422\u0440\u0435\u0431\u0443\u0435\u043c\u0430\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043c\u0435\u0442\u043a\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 <code>PHP</code> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <code>Document</code>. <code>Doctrine</code> <code>ODM</code> \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u0441\u0435\u0445 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u043a \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u043b\u0430\u0441\u0441\u043e\u0432.</p><p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>db</code></b></td><td><code>Document Manager</code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 <code>mongodb</code> \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0446\u0435\u043b\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u043e\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043d\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u0435.</td></tr><tr><td valign="top"><b><code>collection</code></b></td><td>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u043c\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0438\u043c\u0435\u043d\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u043d\u043e \u044d\u0442\u043e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f.</td></tr><tr><td valign="top"><b><code>repositoryClass</code></b></td><td>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043b\u0443\u0447\u0430\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f.</td></tr><tr><td valign="top"><b><code>indexes</code></b></td><td>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.</td></tr><tr><td valign="top"><b><code>requireIndexes</code></b></td><td>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document(\n\ * db="documents",\n\ * collection="users",\n\ * repositoryClass="MyProject\\UserRepository",\n\ * indexes={\n\ * @Index(keys={"username"="desc"}, options={"unique"=true})\n\ * },\n\ * requireIndexes=true\n\ * )\n\ */\nclass User {\n\ //...\n}\n</code></pre>
    3.58 -EmbedManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@EmbedMany</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0430 <code>@EmbedOne</code>, \u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 <code>mongodb</code> \u0432 \u0446\u0435\u043b\u044f\u0445 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432.</p><p style="font-weight: bold; font-size: 1.1em">\u0422\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u0418\u043c\u044f \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u0430.</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u0430 \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u043e\u0432.</td></tr><tr><td valign="top"><b><code>strategy</code></b></td><td>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043a\u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>set</code> \u0438 <code>pushAll</code>, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>pushAll</code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @EmbedMany(\n\ * strategy="set",\n\ * discriminatorField="type",\n\ * discriminatorMap={\n\ * "book"="Documents\\BookTag",\n\ * "song"="Documents\\SongTag"\n\ * }\n\ * )\n\ */\nprivate $tags = array();\n</code></pre>\n<p>\u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0438\u043f\u0430 <code>Document</code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>user<code> \u0438\u043b\u0438 <code>author<code> \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043e \u0432 \u043f\u043e\u043b\u0435 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <code>type<code> \u0438 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u0434\u043b\u044f \u0434\u043e\u043b\u0436\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.</p>
    3.59 -EmbedOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@EmbedOne</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f <code>@EmbedOne</code> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a <code>@ReferenceOne</code>, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0432\u043b\u043e\u0436\u0435\u043d \u0432 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0432 <code>mongodb</code>. \u0418\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 <code>mongodb</code>:</p><p><i>\u0413\u043b\u0430\u0432\u043d\u044b\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441\u0445\u0435\u043c\u044b <code>Mongo</code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f: "\u0438\u043c\u0435\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e, \u0438\u043b\u0438 \u0432 \u043d\u0435\u0433\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439?" \u0412 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u0430\u0436\u043d\u044b\u0439 \u043f\u043e\u0434\u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 (\u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u0434\u0435\u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438). \u0412 <code>Mongo</code> \u044d\u0442\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f - \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e. \u0417\u0430\u0442\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0440\u044f\u0434\u043e\u043c \u043d\u0430 \u0434\u0438\u0441\u043a\u0435; \u0440\u0435\u0432\u0435\u0440\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u043b\u0438\u043d\u0438\u0438 \u043a\u043b\u0438\u0435\u043d\u0442-\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u044b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0432 \u043e\u0431\u0449\u0435\u043c, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0437\u0430\u0434\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441, "\u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0435 \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442?"</i></p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u0418\u043c\u044f \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u0430.</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u041a\u0430\u0440\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438\u043c\u0435\u043d.</td></tr><tr><td valign="top"><b><code>strategy</code></b></td><td>\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043a\u0438. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: <code>set</code> \u0438 <code>pushAll</code>, \u0438 <code>pushAll</code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @EmbedOne(\n\ * strategy="set",\n\ * discriminatorField="type",\n\ * discriminatorMap={\n\ * "book"="Documents\\BookTag",\n\ * "song"="Documents\\SongTag"\n\ * }\n\ * )\n\ */\nprivate $tags = array();\n</code></pre>\n<p>\u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0438\u043f\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 <code>Document</code>, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>user<code> \u0438\u043b\u0438 <code>author<code> \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u043f\u043e\u043b\u0435 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <code>type<code> \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0433\u0438\u0434\u0440\u0430\u0442\u0430\u0446\u0438\u0438.</p>
    3.60 -EmbeddedDocumentTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@EmbeddedDocument</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043a\u0430\u043a \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u043c\u044b\u0439. \u0411\u0435\u0437 \u044d\u0442\u043e\u0439 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\nclass Money {\n\ /**\n\ * @Float\n\ */\n\ protected $amount;\n\n\ public function __construct($amount) {\n\ $this->amount = (float) $amount;\n\ }\n\ //...\n}\n\n/**\n\ * @Document(db="finance", collection="wallets")\n\ */\nclass Wallet {\n\ /**\n\ * @EmbedOne(targetDocument="Money")\n\ */\n\ protected $money;\n\n\ public function setMoney(Money $money) {\n\ $this->money = $money;\n\ }\n\ //...\n}\n//...\n$wallet = new Wallet();\n$wallet->setMoney(new Money(34.39));\n$dm->persist($wallet);\n$dm->flush();\n</code></pre>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043a\u043e\u0434 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442 \u0434\u0435\u043d\u0435\u0436\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442. \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043a\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u043b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c:</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Money {\n\ //...\n}\n</code></pre>\n<p>\u0438\u043b\u0438</p><pre><code>\n/**\n\ * @EmbeddedDocument\n\ */\nclass Money {\n\ //...\n}\n</code></pre>\n<p>\u041e\u0442\u043b\u0438\u0447\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e <code>@EmbeddedDocument</code> \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0431\u0435\u0437 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e <code>@Document</code> \u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.</p>
    3.61 -FieldTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Field</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u0430\u043a "\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0443\u044e". \u041e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 <code>PHP</code> <code>DocBlock</code>. \u041b\u044e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u043e\u0442\u0442\u0443\u0434\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0447\u0430\u0441\u0442\u0438 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430.</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>type</code></b></td><td>\u0418\u043c\u044f <code>Doctrine</code> <code>ODM</code> <code>Type</code>, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c\u043e\u0435 \u043c\u0435\u0436\u0434\u0443 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c <code>PHP</code> \u0438 \u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0434\u043d\u0438\u043c \u0438\u0437: <code>string</code>, <code>boolean</code>, <code>int</code>, <code>float</code>, <code>hash</code>, <code>date</code>, <code>key</code>, <code>timestamp</code>, <code>bin</code>, <code>bin_func</code>, <code>bin_uuid</code>, <code>bin_md5</code>, <code>bin_custom</code>.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0438\u043c\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u0432 \u043f\u043e\u043b\u0435 <code>mongodb</code>, \u043e\u0434\u043d\u0430\u043a\u043e, \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>name<code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u043c\u044f \u043f\u043e\u043b\u044f.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Field(type="string")\n\ */\nprotected $username;\n\n/**\n\ * @Field(type="string" name="origin")\n\ */\nprotected $country;\n\n/**\n\ * @Column(type="float")\n\ */\nprotected $height;\n</code></pre>
    3.62 -FileTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@File</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 <code>ODM</code>, \u0447\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u043e\u043c, \u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u043f\u0443\u0442\u0438 \u0444\u0430\u0439\u043b\u0430 \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0432 <code>mongodb</code>. \u0411\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u043a\u0430\u043a \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 <a href="http://www.php.net/manual/en/class.mongogridfsfile.php">MongoGridFSFile</a> \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0438\u0441\u043a\u0430.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @File\n\ */\nprivate $photo;\n</code></pre>
    3.63 -FloatTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Float</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code>, \u0438\u043c\u0435\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>float</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Float\n\ */\nprivate $price;\n</code></pre>
    3.64 -HashTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Hash</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code>, \u0438\u043c\u0435\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>hash</code>. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u043a \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Hash\n\ */\nprivate $map;\n</code></pre>
    3.65 -IdTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Id</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430. \u042d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0441\u043b\u0443\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u0440\u043a\u0435\u0440\u043e\u043c \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0438\u043b\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ */\nclass User {\n\ /**\n\ * @Id\n\ */\n\ protected $id;\n}\n</code></pre>
    3.66 -IncrementTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Increment</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u042d\u0442\u043e\u0442 \u0442\u0438\u043f \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u043f\u043e\u043b\u0435, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>$inc</code> \u0432\u043c\u0435\u0441\u0442\u043e <code>$set</code>:</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\nclass Package {\n\ // ...\n\n\ /**\n\ * @Increment\n\ */\n\ protected $downloads = 0;\n\n\ public function incrementDownloads() {\n\ $this->downloads++;\n\ }\n\n\ // ...\n}\n</code></pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 <code>Package</code>, \u043a\u0430\u043a \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435:</p><pre><code>\n$package->incrementDownloads();\n$dm->flush();\n</code></pre>\n<p>\u0417\u0430\u043f\u0440\u043e\u0441, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 <code>Mongo</code>, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:</p><pre><code>\narray(\n\ '$inc' => array(\n\ 'downloads' => 1\n\ )\n)\n</code></pre>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043e \u043d\u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0432\u044b\u043c \u0438 \u0441\u0442\u0430\u0440\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.</p>
    3.67 -IndexTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Index</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 <code>@Document</code> \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043b\u0430\u0441\u0441\u0430. \u041e\u043d\u0430 \u0434\u0430\u0435\u0442 <code>mongodb</code> \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0443 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044f\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>keys</code></b></td><td>\u041f\u043e\u043b\u044f \u0434\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430.</td></tr><tr><td valign="top"><b><code>options</code></b></td><td>\u041c\u0430\u0441\u0441\u0438\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 <code>MongoCollection</code>.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document(\n\ * db="my_database",\n\ * collection="users",\n\ * indexes={\n\ * @Index(keys={"username"="desc"}, options={"unique"=true})\n\ * }\n\ * )\n\ */\nclass User {\n\ //...\n}\n</code></pre>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>@Index</code> \u0438\u043b\u0438 <code>@UniqueIndex</code> \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0435:</p><pre><code>\n/**\n\ * @String\n\ * @UniqueIndex(safe="true")\n\ */\nprivate $username;\n</code></pre>
    3.68 -IntTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Int</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c <code>@Field</code>, \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code>, \u0438\u043c\u0435\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>int</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Int\n\ */\nprivate $amount;\n</code></pre>
    3.69 -InheritanceTypeTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@InheritanceTypeTag</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0412 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c/\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u0443\u044e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f <code>SINGLE_COLLECTION</code> \u0438 <code>COLLECTION_PER_CLASS</code>.</p><p>\u042d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438 <code>@DiscriminatorMap</code> \u0438 <code>@DiscriminatorField</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ * @InheritanceType("COLLECTION_PER_CLASS")\n\ * @DiscriminatorMap({"person"="Person", "employee"="Employee"})\n\ */\nclass Person {\n\ // ...\n}\n\n/**\n\ * @Document\n\ * @InheritanceType("SINGLE_COLLECTION")\n\ * @DiscriminatorMap({"person"="Person", "employee"="Employee"})\n\ */\nclass Person {\n\ // ...\n}\n</code></pre>
    3.70 -KeyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Key</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code>, \u0438\u043c\u0435\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>key</code>. \u0417\u0430\u0442\u0435\u043c \u043e\u043d \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 <a href="http://www.php.net/manual/en/class.mongomaxkey.php"><code>MongoMaxKey</code><a/> \u0438\u043b\u0438 <a href="http://www.php.net/manual/en/class.mongominkey.php"><code>MongoMinKey</code><a/>, \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e <code>true</code> \u0438\u043b\u0438 <code>false</code> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Key\n\ */\nprivate $last;\n</code></pre>
    3.71 -MappedSuperclassTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@MappedSuperclass</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c\u0438 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0439. <a href="http://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/inheritance/en">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435</a>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @MappedSuperclass\n\ */\nclass BaseDocument {\n\ // ...\n}\n</code></pre>
    3.72 -NotSavedTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@NotSaved</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442, \u043d\u043e \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @NotSaved\n\ */\npublic $field;\n</code></pre>
    3.73 -PreLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Preload</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PreLoad</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\ // ...\n\n\ /**\n\ * @PreLoad\n\ */\n\ public function preLoad(array &$data) {\n\ // ...\n\ }\n}\n</code></pre>
    3.74 -PostLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostLoad</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PostLoad</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\ // ...\n\n\ /**\n\ * @PostLoad\n\ */\n\ public function postLoad() {\n\ // ...\n\ }\n}\n</code></pre>
    3.75 -PostPersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostPersist</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PostPersist</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\ // ...\n\n\ /**\n\ * @PostPersist\n\ */\n\ public function postPersist() {\n\ // ...\n\ }\n}\n</code></pre>
    3.76 -PostRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostRemove</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PostRemove</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\ // ...\n\n\ /**\n\ * @PostRemove\n\ */\n\ public function postRemove() {\n\ // ...\n\ }\n}\n</code></pre>
    3.77 -PostUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PostUpdate</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\ // ...\n\n\ /**\n\ * @PostUpdate\n\ */\n\ public function postUpdate() {\n\ // ...\n\ }\n}\n</code></pre>
    3.78 -PrePersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PrePersist</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PrePersist</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\ // ...\n\n\ /**\n\ * @PrePersist\n\ */\n\ public function prePersist() {\n\ // ...\n\ }\n}\n</code></pre>
    3.79 -PreRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreRemove</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PreRemove</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\ // ...\n\n\ /**\n\ * @PreRemove\n\ */\n\ public function preRemove() {\n\ // ...\n\ }\n}\n</code></pre>
    3.80 -PreUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PreUpdate</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\ // ...\n\n\ /**\n\ * @PreUpdate\n\ */\n\ public function preUpdate() {\n\ // ...\n\ }\n}\n</code></pre>
    3.81 -ReferenceManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ReferenceMany</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u044b\u0445 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432.</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>simple</code></b></td><td>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e <code>MongoId</code> \u0432\u043c\u0435\u0441\u0442\u043e <code>DBRef</code>.</td></tr><tr><td valign="top"><b><code>cascade</code></b></td><td>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.</td></tr><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u0418\u043c\u044f \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u0430.</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u041a\u0430\u0440\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438\u043c\u0435\u043d.</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td>\u0418\u043c\u044f \u043f\u043e\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435.</td></tr><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u0418\u043c\u044f \u043f\u043e\u043b\u044f \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435.</td></tr><tr><td valign="top"><b><code>repositoryMethod</code></b></td><td>\u0418\u043c\u044f \u043c\u0435\u0442\u043e\u0434\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0438.</td></tr><tr><td valign="top"><b><code>sort</code></b></td><td>\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443.</td></tr><tr><td valign="top"><b><code>criteria</code></b></td><td>\u041c\u0430\u0441\u0441\u0438\u0432 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443.</td></tr><tr><td valign="top"><b><code>limit</code></b></td><td>\u041f\u0440\u0435\u0434\u0435\u043b \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443.</td></tr><tr><td valign="top"><b><code>skip</code></b></td><td>\u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443.</td></tr><tr><td valign="top"><b><code>strategy</code></b></td><td>\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043a\u0438. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: <code>set</code> \u0438 <code>pushAll</code>, \u0438 <code>pushAll</code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @ReferenceMany(\n\ * strategy="set",\n\ * targetDocument="Documents\\Item",\n\ * cascade="all",\n\ * discriminatorField="type",\n\ * discriminatorMap={\n\ * "book"="Documents\\BookItem",\n\ * "song"="Documents\\SongItem"\n\ * }\n\ * )\n\ */\nprivate $cart;\n</code></pre>
    3.82 -StringTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@String</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code>, \u0438\u043c\u0435\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>string</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @String\n\ */\nprivate $username;\n</code></pre>
    3.83 -TimestampTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Timestamp</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c <code>@Field</code> \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>type</code>, \u0438\u043c\u0435\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>timestamp</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Timestamp\n\ */\nprivate $created;\n</code></pre>
    3.84 -UniqueIndexTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@UniqueIndex</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @String\n\ * @UniqueIndex\n\ */\nprivate $email;\n</code></pre>
    3.85 -ReferenceOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ReferenceOne</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>simple</code></b></td><td>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e <code>MongoId</code> \u0432\u043c\u0435\u0441\u0442\u043e <code>DBRef</code>.</td></tr><tr><td valign="top"><b><code>cascade</code></b></td><td>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.</td></tr><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u0418\u043c\u044f \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u0430.</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u041a\u0430\u0440\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438\u043c\u0435\u043d.</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td>\u0418\u043c\u044f \u043f\u043e\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435.</td></tr><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u0418\u043c\u044f \u043f\u043e\u043b\u044f \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435.</td></tr><tr><td valign="top"><b><code>repositoryMethod</code></b></td><td>\u0418\u043c\u044f \u043c\u0435\u0442\u043e\u0434\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0438.</td></tr><tr><td valign="top"><b><code>sort</code></b></td><td>\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443.</td></tr><tr><td valign="top"><b><code>criteria</code></b></td><td>\u041c\u0430\u0441\u0441\u0438\u0432 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443.</td></tr><tr><td valign="top"><b><code>limit</code></b></td><td>\u041f\u0440\u0435\u0434\u0435\u043b \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443.</td></tr><tr><td valign="top"><b><code>skip</code></b></td><td>\u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @ReferenceOne(\n\ * targetDocument="Documents\\Item",\n\ * cascade="all",\n\ * discriminatorField="type",\n\ * discriminatorMap={\n\ * "book"="Documents\\BookItem",\n\ * "song"="DOcuments\\SongItem"\n\ * }\n\ * )\n\ */\nprivate $cart;\n</code></pre>
    3.86 -
     4.1 --- a/src/ru/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/orm/Bundle_ru.properties	Wed Jun 13 10:20:09 2012 +0900
     4.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.3 @@ -1,72 +0,0 @@
     4.4 -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     4.5 -#
     4.6 -# Copyright 2012 Oracle and/or its affiliates. All rights reserved.
     4.7 -#
     4.8 -# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
     4.9 -# Other names may be trademarks of their respective owners.
    4.10 -#
    4.11 -# The contents of this file are subject to the terms of either the GNU
    4.12 -# General Public License Version 2 only ("GPL") or the Common
    4.13 -# Development and Distribution License("CDDL") (collectively, the
    4.14 -# "License"). You may not use this file except in compliance with the
    4.15 -# License. You can obtain a copy of the License at
    4.16 -# http://www.netbeans.org/cddl-gplv2.html
    4.17 -# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    4.18 -# specific language governing permissions and limitations under the
    4.19 -# License.  When distributing the software, include this License Header
    4.20 -# Notice in each file and include the License file at
    4.21 -# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
    4.22 -# particular file as subject to the "Classpath" exception as provided
    4.23 -# by Oracle in the GPL Version 2 section of the License file that
    4.24 -# accompanied this code. If applicable, add the following below the
    4.25 -# License Header, with the fields enclosed by brackets [] replaced by
    4.26 -# your own identifying information:
    4.27 -# "Portions Copyrighted [year] [name of copyright owner]"
    4.28 -#
    4.29 -# If you wish your version of this file to be governed by only the CDDL
    4.30 -# or only the GPL Version 2, indicate your decision by adding
    4.31 -# "[Contributor] elects to include this software in this distribution
    4.32 -# under the [CDDL or GPL Version 2] license." If you do not indicate a
    4.33 -# single choice of license, a recipient has the option to distribute
    4.34 -# your version of this file under either the CDDL, the GPL Version 2 or
    4.35 -# to extend the choice of license to its licensees as provided above.
    4.36 -# However, if you add GPL Version 2 code and therefore, elected the GPL
    4.37 -# Version 2 license, then the option applies only if the new code is
    4.38 -# made subject to such option by the copyright holder.
    4.39 -#
    4.40 -# Contributor(s):
    4.41 -#
    4.42 -# Portions Copyrighted 2012 Sun Microsystems, Inc.
    4.43 -
    4.44 -ColumnTag.documentation=<p style=\"font-weight: bold; font-size: 1.2em\">@Field</p><p style=\"font-weight: bold; font-size: 1.1em\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u0430\u043a \"\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0443\u044e\". \u041e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 <code>PHP</code> <code>DocBlock</code>. \u041b\u044e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u043e\u0442\u0442\u0443\u0434\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0447\u0430\u0441\u0442\u0438 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430.</p><p style=\"font-weight: bold; font-size: 1.1em\">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border=\"0\"><tr><td valign=\"top\"><b><code>type</code></b></td><td>\u0418\u043c\u044f <code>Doctrine</code> <code>ODM</code> <code>Type</code>, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c\u043e\u0435 \u043c\u0435\u0436\u0434\u0443 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c <code>PHP</code> \u0438 \u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0434\u043d\u0438\u043c \u0438\u0437: <code>string</code>, <code>boolean</code>, <code>int</code>, <code>float</code>, <code>hash</code>, <code>date</code>, <code>key</code>, <code>timestamp</code>, <code>bin</code>, <code>bin_func</code>, <code>bin_uuid</code>, <code>bin_md5</code>, <code>bin_custom</code>.</td></tr></table>\\n<p style=\"font-weight: bold; font-size: 1.1em\">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border=\"0\"><tr><td valign=\"top\"><b><code>name</code></b></td><td>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0438\u043c\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u0432 \u043f\u043e\u043b\u0435 <code>mongodb</code>, \u043e\u0434\u043d\u0430\u043a\u043e, \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>name<code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u043c\u044f \u043f\u043e\u043b\u044f.</td></tr></table>\\n<p style=\"font-weight: bold; font-size: 1.1em\">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\\n/**\\n\\ * @Field(type=\"string\")\\n\\ */\\nprotected $username;\\n\\n/**\\n\\ * @Field(type=\"string\" name=\"origin\")\\n\\ */\\nprotected $country;\\n\\n/**\\n\\ * @Column(type=\"float\")\\n\\ */\\nprotected $height;\\n</code></pre>\r\n<p style=\"font-weight: bold; font-size: 1.2em\">@Column</p><p style=\"font-weight: bold; font-size: 1.1em\">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u0430\u043a \"\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0443\u044e\". \u041e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 <code>PHP</code> <code>DocBlock</code>. \u041b\u044e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435\u0441\u044f \u0432 \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u043e\u0442\u0442\u0443\u0434\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0447\u0430\u0441\u0442\u0438 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430.</p>\\n<p style=\"font-weight: bold; font-size: 1.1em\">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border=\"0\"><tr><td valign=\"top\"><b><code>type</code></b></td><td>\u0418\u043c\u044f <code>Doctrine</code> <code>Type</code>, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c\u043e\u0435 \u043c\u0435\u0436\u0434\u0443 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c <code>PHP</code> \u0438 \u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.</td></tr></table>\\n<p style=\"font-weight: bold; font-size: 1.1em\">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border=\"0\"><tr><td valign=\"top\"><b><code>name</code></b></td><td>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0438\u043c\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0438\u043c\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u043e\u0434\u043d\u0430\u043a\u043e, \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>name</code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0438\u043c\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u0430.</td></tr><tr><td valign=\"top\"><b><code>length</code></b></td><td>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0438\u043f\u043e\u043c \"\u0441\u0442\u0440\u043e\u043a\u0438\" \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0435\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. <code>Doctrine</code> \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u0438\u043d\u044b \u0441\u0442\u0440\u043e\u043a\u0438.</td></tr><tr><td valign=\"top\"><b><code>precision</code></b></td><td>\u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0433\u043e (\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e) \u0441\u0442\u043e\u043b\u0431\u0446\u0430 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432).</td></tr><tr><td valign=\"top\"><b><code>scale</code></b></td><td>\u041c\u0430\u0441\u0448\u0442\u0430\u0431 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0433\u043e (\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0433\u043e) \u0441\u0442\u043e\u043b\u0431\u0446\u0430 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432).</td></tr><tr><td valign=\"top\"><b><code>unique</code></b></td><td>\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0435\u0435, \u0434\u043e\u043b\u0436\u043d\u043e \u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0431\u044b\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0442\u0440\u043e\u043a \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439.</td></tr><tr><td valign=\"top\"><b><code>nullable</code></b></td><td>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u044b \u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>NULL</code> \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430.</td></tr><tr><td valign=\"top\"><b><code>columnDefinition</code></b></td><td><code>DDL</code> <code>SQL</code> \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0438\u043c\u0435\u043d\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u043b\u043d\u043e\u0435 (\u043d\u0435\u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0435!) \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430. \u042d\u0442\u043e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>RMDBS</code>. \u041e\u0434\u043d\u0430\u043a\u043e, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u044b\u043c \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0435\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0439. <code>SchemaTool</code> \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>columnDefinition</code>.</td></tr></table>\\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>type</code> \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 <code>PHP</code> \u0438 \u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 <code>@JoinColumn</code>.</p>\\n<p style=\"font-weight: bold; font-size: 1.1em\">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\\n/**\\n\\ * @Column(type=\"string\", length=32, unique=true, nullable=false)\\n\\ */\\nprotected $username;\\n\\n/**\\n\\ * @Column(type=\"string\", columnDefinition=\"CHAR(2) NOT NULL\")\\n\\ */\\nprotected $country;\\n\\n/**\\n\\ * @Column(type=\"decimal\", precision=2, scale=1)\\n\\ */\\nprotected $height;\\n</code></pre>
    4.45 -ChangeTrackingPolicyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ChangeTrackingPolicy</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f <code>ChangeTrackingPolicy</code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a <code>Doctrine 2</code> <code>UnitOfWork</code> \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0431\u0440\u043e\u0441\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u043c\u043e\u0439 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0435\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u0440\u043e\u0441\u0430 <code>UnitOfWork</code> \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0441 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u0442\u0447\u0435\u0442\u043e\u043c. \u042d\u0442\u043e \u0437\u0430\u0432\u043e\u0434\u0441\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430, \u043e\u0434\u043d\u0430\u043a\u043e, \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0431\u0440\u043e\u0441\u0430 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438.</p>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>\n/**\n\ * @Entity\n\ * @ChangeTrackingPolicy("DEFERRED_IMPLICIT")\n\ * @ChangeTrackingPolicy("DEFERRED_EXPLICIT")\n\ * @ChangeTrackingPolicy("NOTIFY")\n\ */\nclass User {}\n</code></pre>
    4.46 -DiscriminatorColumnTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorColumn</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u042d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u043b\u044f \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e/\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0434\u0435\u0442\u0430\u043b\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c.</p>\n<p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u0418\u043c\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u0430. \u042d\u0442\u043e \u0438\u043c\u044f \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0433\u0438\u0434\u0440\u0430\u0442\u0430\u0446\u0438\u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043a\u0430\u043a \u043a\u043b\u044e\u0447 \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0438\u043c\u0435\u043d\u0438 \u043a\u043b\u0430\u0441\u0441\u0430.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>type</code></b></td><td>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>string</code>.</td></tr><tr><td valign="top"><b><code>length</code></b></td><td>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>255</code>.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @Entity\n\ * @InheritanceType("JOINED")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\ // ...\n}\n</code></pre>
    4.47 -DiscriminatorMapTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorMap</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f <code>DiscriminatorMap</code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u043b\u044f \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e/\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 \u043a\u0430\u043a \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0438\u0439, \u043a\u0430\u043a\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u043a\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u043b\u044e\u0447\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f - \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438, \u0430 \u0438\u043c\u0435\u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u044b\u0435, \u0442\u0430\u043a \u0438 \u043d\u0435\u043f\u043e\u043b\u043d\u044b\u0435, \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043b\u0438 \u043a\u043b\u0430\u0441\u0441\u044b \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0435\u043d.</p>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @Entity\n\ * @InheritanceType("JOINED")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\ // ...\n}\n</code></pre>
    4.48 -Doctrine2OrmAnnotationsProvider.name=Doctrine2 ORM
    4.49 -EntityTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Entity</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f, \u043f\u043e\u043c\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u043a\u043b\u0430\u0441\u0441 <code>PHP</code> \u043a\u0430\u043a \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c <code>Entity</code>. <code>Doctrine</code> \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u0441\u0435\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u043a\u0430\u043a \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c.</p>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>repositoryClass</code></b></td><td>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 <code>FQCN</code> \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u0430 <code>EntityRepository</code>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 <code>DQL</code> \u0438 <code>SQL</code> \u043e\u0442 \u0441\u043b\u043e\u044f <code>Model</code>/<code>Domain</code>.</td></tr><tr><td valign="top"><b><code>readOnly</code></b></td><td>(>= 2.1) \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u041e\u0434\u043d\u0430\u043a\u043e, \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @Entity(repositoryClass="MyProject\\UserRepository")\n\ */\nclass User {\n\ //...\n}\n</code></pre>
    4.50 -GeneratedValueTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@GeneratedValue</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0441 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439 <code>@Id</code>. \u042d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 <code>@Id</code>.</p>\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 <code>@Id</code>, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f <code>NONE</code>.</p>\n<p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>strategy</code></b></td><td>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u043c\u044f \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: <code>AUTO</code>, <code>SEQUENCE</code>, <code>TABLE</code>, <code>IDENTITY</code> \u0438 <code>NONE</code>.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @Id\n\ * @Column(type="integer")\n\ * @generatedValue(strategy="IDENTITY")\n\ */\nprotected $id = null;\n</code></pre>
    4.51 -HasLifecycleCallbacksTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@HasLifecycleCallbacks</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 <code>PHP</code> <code>DocBlock</code>, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c <code>Doctrine</code>, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u0438\u043c\u0435\u0435\u0442 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u0438\u043d \u0438\u0437 \u0435\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u0432. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <code>@PostLoad</code>, <code>@PrePersist</code>, <code>@PostPersist</code>, <code>@PreRemove</code>, <code>@PostRemove</code>, <code>@PreUpdate</code> \u0438\u043b\u0438 <code>@PostUpdate</code> \u0431\u0435\u0437 \u044d\u0442\u043e\u0439 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, <code>Doctrine</code> \u0431\u0443\u0434\u0435\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b.</p>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @Entity\n\ * @HasLifecycleCallbacks\n\ */\nclass User {\n\ /**\n\ * @PostPersist\n\ */\n\ public function sendOptinMail() {}\n}\n</code></pre>
    4.52 -IndexTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Index</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 <code>@Table</code> \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u041e\u043d\u0430 \u0434\u0430\u0435\u0442 <code>SchemaTool</code> \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0443 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041e\u043d\u0430 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0445\u0435\u043c\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>SchemaTool</code>.</p>\n<p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u0418\u043c\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430 <code>Index</code>.</td></tr><tr><td valign="top"><b><code>columns</code></b></td><td>\u041c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @Entity\n\ * @Table(name="ecommerce_products",indexes={@index(name="search_idx", columns={"name", "email"})})\n\ */\nclass ECommerceProduct {\n}\n</code></pre>
    4.53 -IdTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Id</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u042d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0440\u043a\u0435\u0440\u043e\u043c \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0438\u043b\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432. \u0414\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430, \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u043e\u043c\u0435\u0447\u0435\u043d \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439 <code>@Id</code>.</p>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @Id\n\ * @Column(type="integer")\n\ */\nprotected $id = null;\n</code></pre>
    4.54 -InheritanceTypeTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@InheritanceType</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0412 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e/\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u0443\u044e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u0438\u043f\u044b \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f <code>Single Table</code> \u0438 <code>Class Table</code>.</p>\n<p>\u042d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438 <code>@DiscriminatorMap</code> \u0438 <code>@DiscriminatorColumn</code>.</p>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @Entity\n\ * @InheritanceType("SINGLE_TABLE")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\ // ...\n}\n\n/**\n\ * @Entity\n\ * @InheritanceType("JOINED")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\ // ...\n}\n</code></pre>
    4.55 -JoinColumnTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@JoinColumn</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u042d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439 \u0432 \u043f\u043e\u043b\u044f\u0445 <code>@ManyToOne</code>, <code>@OneToOne</code> \u0438 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 <code>@JoinTable</code>, \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432 <code>@ManyToMany</code>. \u042d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439. \u0415\u0441\u043b\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b <code>name</code> \u0438 <code>referencedColumnName</code> \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b, \u043e\u043d\u0438 \u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0438\u0437 \u0438\u043c\u0435\u043d \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.</p>\n<p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u0418\u043c\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f. \u0412 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 <code>@JoinTable</code> \u043e\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0438\u043c\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0432 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.</td></tr><tr><td valign="top"><b><code>referencedColumnName</code></b></td><td>\u0418\u043c\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0435 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>unique</code></b></td><td>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u044d\u0442\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u044d\u043a\u0441\u043a\u043b\u044e\u0437\u0438\u0432\u043d\u044b\u043c \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044b\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0438 \u043d\u0443\u0436\u043d\u043e \u043b\u0438 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>false</code>.</td></tr><tr><td valign="top"><b><code>nullable</code></b></td><td>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043b\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c, \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 <code>null</code> \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0434\u043b\u044f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>true</code>.</td></tr><tr><td valign="top"><b><code>onDelete</code></b></td><td>\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 (\u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445).</td></tr><tr><td valign="top"><b><code>columnDefinition</code></b></td><td><code>DDL</code> <code>SQL</code> \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0438\u043c\u0435\u043d\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u043b\u043d\u043e\u0435 (\u043d\u0435\u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0435!) \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430. \u042d\u0442\u043e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>RMDBS</code>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0432 <code>@JoinColumn</code> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0434\u043b\u044f \u0438\u0445 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>NULL</code>/<code>NOT NULL</code>. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>columnDefinition</code> \u0432 <code>@Column</code> \u0442\u0430\u043a\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 columnDefinition \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 <code>@JoinColumn</code>''. \u042d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043a\u043b\u044e\u0447\u0435\u0439.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @OneToOne(targetEntity="Customer")\n\ * @JoinColumn(name="customer_id", referencedColumnName="id")\n\ */\nprivate $customer;\n</code></pre>
    4.56 -JoinColumnsTag.documentation=\u0432<p style="font-weight: bold; font-size: 1.2em">@JoinColumns</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041c\u0430\u0441\u0441\u0438\u0432 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439 <code>@JoinColumn</code> \u0434\u043b\u044f \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f <code>@ManyToOne</code> \u0438\u043b\u0438 <code>@OneToOne</code> \u0441 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e, \u0438\u043c\u0435\u044e\u0449\u0435\u0439 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432.</p>
    4.57 -JoinTableTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@JoinTable</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <code>@OneToMany</code> \u0438\u043b\u0438 <code>@ManyToMany</code> \u043d\u0430 \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e <code>@JoinTable</code>, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0434\u0435\u0442\u0430\u043b\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>@JoinTable</code> \u0432 \u044d\u0442\u0438\u0445 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f\u0445, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0438\u043c\u0435\u043d \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432.</p>\n<p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u0418\u043c\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.</td></tr><tr><td valign="top"><b><code>joinColumns</code></b></td><td>\u041c\u0430\u0441\u0441\u0438\u0432 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439 <code>@JoinColumn</code>, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439.</td></tr><tr><td valign="top"><b><code>inverseJoinColumns</code></b></td><td>\u041c\u0430\u0441\u0441\u0438\u0432 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439 <code>@JoinColumn</code>, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @ManyToMany(targetEntity="Phonenumber")\n\ * @JoinTable(name="users_phonenumbers",\n\ * joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},\n\ * inverseJoinColumns={@JoinColumn(name="phonenumber_id", referencedColumnName="id", unique=true)}\n\ * )\n\ */\npublic $phonenumbers;\n</code></pre>
    4.58 -ManyToOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ManyToOne</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0447\u0442\u043e \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0441\u044b\u043b\u043a\u0443, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0442\u0438\u043f\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e - \u043e\u0434\u0438\u043d.</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td><code>FQCN</code> \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043c\u0435\u043d\u0435\u043c \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0435\u043d. <b>\u0412\u0430\u0436\u043d\u043e</b>: \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043a\u043e\u0441\u043e\u0439 \u0447\u0435\u0440\u0442\u044b!</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>cascade</code></b></td><td>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td>\u041e\u0434\u0438\u043d \u0438\u0437: <code>LAZY</code> \u0438\u043b\u0438 <code>EAGER</code>.</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td>\u0410\u0442\u0440\u0438\u0431\u0443\u0442 <code>inversedBy</code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0435 \u0432 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u044f\u0432\u043b\u044f\u044e\u0449\u0435\u0435\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0438.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @ManyToOne(targetEntity="Cart", cascade={"all"}, fetch="EAGER")\n\ */\nprivate $cart;\n</code></pre>
    4.59 -ManyToManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ManyToMany</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 '\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e - \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e' \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438. <code>@JoinTable</code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439, \u0438\u043c\u0435\u044e\u0449\u0435\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0438\u043c\u0435\u043d\u0430 \u0434\u0432\u0443\u0445 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439.</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td><code>FQCN</code> \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043c\u0435\u043d\u0435\u043c \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0435\u043d. <b>\u0412\u0430\u0436\u043d\u043e</b>: \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043a\u043e\u0441\u043e\u0439 \u0447\u0435\u0440\u0442\u044b!</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0438\u043c\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 <code>targetEntity</code>, \u044f\u0432\u043b\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f.</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td>\u0410\u0442\u0440\u0438\u0431\u0443\u0442 <code>inversedBy</code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \ufb01eld \u0432 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u044f\u0432\u043b\u044f\u044e\u0449\u0435\u0435\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0438.</td></tr><tr><td valign="top"><b><code>cascade</code></b></td><td>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td>\u041e\u0434\u0438\u043d \u0438\u0437: <code>LAZY</code>, <code>EXTRA_LAZY</code> \u0438\u043b\u0438 <code>EAGER</code>.</td></tr><tr><td valign="top"><b><code>indexBy</code></b></td><td>\u0418\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e \u043f\u043e\u043b\u044e \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438.</td></tr></table>\n<p>\u0412 \u0434\u0432\u0443\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f\u0445 <code>ManyToMany</code> \u043b\u044e\u0431\u0430\u044f \u0438\u0437 \u0441\u0442\u043e\u0440\u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 (\u0441\u0442\u043e\u0440\u043e\u043d\u0430, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0430\u044f <code>@JoinTable</code> \u0438/\u0438\u043b\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0430\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>mappedBy</code>, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0430\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e).</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * Owning Side\n\ *\n\ * @ManyToMany(targetEntity="Group", inversedBy="features")\n\ * @JoinTable(name="user_groups",\n\ * joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},\n\ * inverseJoinColumns={@JoinColumn(name="group_id", referencedColumnName="id")}\n\ * )\n\ */\nprivate $groups;\n\n/**\n\ * Inverse Side\n\ *\n\ * @ManyToMany(targetEntity="User", mappedBy="groups")\n\ */\nprivate $features;\n</code></pre>
    4.60 -MappedSuperclassTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@MappedSuperclass</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043a\u043b\u0430\u0441\u0441 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u043c \u0438\u043b\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u043c, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u043c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043d\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u043c\u0441\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e. \u042d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 <code>Class<code> <code>DocBlock</code> \u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432.</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f <code>@MappedSuperclass</code> \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 <code>@Entity</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>repositoryClass</code></b></td><td>(>= 2.2) \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 <code>FQCN</code> \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u0430 <code>EntityRepository</code>. \u042d\u0442\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u043f\u043e\u0434\u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 \u044d\u0442\u043e\u0433\u043e <code>Mapped Superclass</code>.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @MappedSuperclass\n\ */\nclass MappedSuperclassBase {\n\ // ... fields and methods\n}\n\n/**\n\ * @Entity\n\ */\nclass EntitySubClassFoo extends MappedSuperclassBase {\n\ // ... fields and methods\n}\n</code></pre>
    4.61 -OneToOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@OneToOne</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f <code>@OneToOne</code> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a <code>@ManyToOne</code>, \u0441 \u043e\u0434\u043d\u0438\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c. \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f <code>@JoinColumn</code> \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u043c\u0435\u043d \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td><code>FQCN</code> \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043c\u0435\u043d\u0435\u043c \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0435\u043d. <b>\u0412\u0430\u0436\u043d\u043e</b>: \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043a\u043e\u0441\u043e\u0439 \u0447\u0435\u0440\u0442\u044b!</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>cascade</code></b></td><td>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td>\u041e\u0434\u0438\u043d \u0438\u0437: <code>LAZY</code> \u0438\u043b\u0438 <code>EAGER</code>.</td></tr><tr><td valign="top"><b><code>orphanRemoval</code></b></td><td>\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0435\u0435, \u0434\u043e\u043b\u0436\u043d\u044b \u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b-\u0441\u0438\u0440\u043e\u0442\u044b, \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 <code>OneToOne</code>, \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0435 \u043d\u0438 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c\u0443 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0443, \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u044b <code>Doctrine</code>. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>false</code>.</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td>\u0410\u0442\u0440\u0438\u0431\u0443\u0442 <code>inversedBy</code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \ufb01eld \u0432 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u044f\u0432\u043b\u044f\u044e\u0449\u0435\u0435\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0438.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @OneToOne(targetEntity="Customer")\n\ * @JoinColumn(name="customer_id", referencedColumnName="id")\n\ */\nprivate $customer;\n</code></pre>
    4.62 -OneToManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@OneToMany</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td><code>FQCN</code> \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043c\u0435\u043d\u0435\u043c \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u0435\u0441\u043b\u0438 \u043e\u0431\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0435\u043d. <b>\u0412\u0430\u0436\u043d\u043e</b>: \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043a\u043e\u0441\u043e\u0439 \u0447\u0435\u0440\u0442\u044b!</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>cascade</code></b></td><td>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.</td></tr><tr><td valign="top"><b><code>orphanRemoval</code></b></td><td>\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0435\u0435, \u0434\u043e\u043b\u0436\u043d\u044b \u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b-\u0441\u0438\u0440\u043e\u0442\u044b, \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 <code>OneToOne</code>, \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0435 \u043d\u0438 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c\u0443 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0443, \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u044b <code>Doctrine</code>. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>false</code>.</td></tr><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u042d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0438\u043c\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 <code>targetEntity</code>, \u044f\u0432\u043b\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f.</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td>\u041e\u0434\u0438\u043d \u0438\u0437: <code>LAZY</code>, <code>EXTRA_LAZY</code> \u0438\u043b\u0438 <code>EAGER</code>.</td></tr><tr><td valign="top"><b><code>indexBy</code></b></td><td>\u0418\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e \u043f\u043e\u043b\u044e \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @OneToMany(targetEntity="Phonenumber", mappedBy="user", cascade={"persist", "remove", "merge"}, orphanRemoval=true)\n\ */\npublic $phonenumbers;\n</code></pre>
    4.63 -OrderByTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@OrderBy</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439 <code>@ManyToMany</code> \u0438\u043b\u0438 <code>@OneToMany</code> \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code>ORDER BY</code>.</p><p>\u042d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0441 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u043c <code>DQL</code>:</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @ManyToMany(targetEntity="Group")\n\ * @OrderBy({"name" = "ASC"})\n\ */\nprivate $groups;\n</code></pre>\n<p>\u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 <code>DQL</code> \u0432 <code>OrderBy</code> \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0438\u043c\u0435\u043d \u043f\u043e\u043b\u0435\u0439 \u0431\u0435\u0437 \u043a\u0430\u0432\u044b\u0447\u0435\u043a \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <code>ASC</code>/<code>DESC</code>. \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0439 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438 (,). \u0423\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u043f\u043e\u043b\u0435\u0439 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 <code>targetEntity</code> \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 <code>@ManyToMany</code> \u0438\u043b\u0438 <code>@OneToMany</code>.</p>
    4.64 -PostLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostLoad</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PostLoad</code>. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>@HasLifecycleCallbacks</code> \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 <code>PHP</code> <code>DocBlock</code>.</p>
    4.65 -PostPersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostPersist</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PostPersist</code>. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>@HasLifecycleCallbacks</code> \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 <code>PHP</code> <code>DocBlock</code>.</p>
    4.66 -PostRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostRemove</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PostRemove</code>. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>@HasLifecycleCallbacks</code> \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 <code>PHP</code> <code>DocBlock</code>.</p>
    4.67 -PostUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PostUpdate</code>. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>@HasLifecycleCallbacks</code> \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 <code>PHP</code> <code>DocBlock</code>.</p>
    4.68 -PrePersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PrePersist</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PrePersist</code>. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>@HasLifecycleCallbacks</code> \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 <code>PHP</code> <code>DocBlock</code>.</p>
    4.69 -PreRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreRemove</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PreRemove</code>. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>@HasLifecycleCallbacks</code> \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 <code>PHP</code> <code>DocBlock</code>.</p>
    4.70 -PreUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u043e\u043c\u0435\u0447\u0430\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f <code>@PreUpdate</code>. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>@HasLifecycleCallbacks</code> \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 <code>PHP</code> <code>DocBlock</code>.</p>
    4.71 -SequenceGeneratorTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@SequenceGenerator</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 <code>@generatedValue(strategy="SEQUENCE")</code> \u044d\u0442\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>sequenceName</code></b></td><td>\u0418\u043c\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>allocationSize</code></b></td><td>\u041f\u0440\u0438\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 1 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0439 \u043d\u043e\u0432\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0437\u0430\u043f\u0440\u043e\u0441. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 10</code>.</td></tr><tr><td valign="top"><b><code>initialValue</code></b></td><td>\u041d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>1</code>.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @Id\n\ * @GeneratedValue(strategy="SEQUENCE")\n\ * @Column(type="integer")\n\ * @SequenceGenerator(sequenceName="tablename_seq", initialValue=1, allocationSize=100)\n\ */\nprotected $id = null;\n</code></pre>
    4.72 -TableTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Table</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c. \u041e\u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 <code>PHP</code> <code>DocBlock</code> \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439. \u0415\u0441\u043b\u0438 \u0438\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439.</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u0418\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>indexes</code></b></td><td>\u041c\u0430\u0441\u0441\u0438\u0432 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439 <code>@Index</code>.</td></tr><tr><td valign="top"><b><code>uniqueConstraints</code></b></td><td>\u041c\u0430\u0441\u0441\u0438\u0432 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439 <code>@UniqueConstraint</code>.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @Entity\n\ * @Table(name="user",\n\ * uniqueConstraints={@UniqueConstraint(name="user_unique",columns={"username"})},\n\ * indexes={@Index(name="user_idx", columns={"email"})}\n\ * )\n\ */\nclass User {\n}\n</code></pre>
    4.73 -UniqueConstraintTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@UniqueConstraint</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 <code>@Table</code> \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438. \u041e\u043d\u0430 \u0434\u0430\u0435\u0442 <code>SchemaTool</code> \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0443 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041e\u043d\u0430 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0445\u0435\u043c\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>SchemaTool</code>.</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u0418\u043c\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430.</td></tr><tr><td valign="top"><b><code>columns</code></b></td><td>\u041c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432.</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @Entity\n\ * @Table(name="ecommerce_products",uniqueConstraints={@UniqueConstraint(name="search_idx", columns={"name", "email"})})\n\ */\nclass ECommerceProduct {\n}\n</code></pre>
    4.74 -VersionTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Version</p><p style="font-weight: bold; font-size: 1.1em">\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435</p><p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f-\u043c\u0430\u0440\u043a\u0435\u0440, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0430\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u043a\u0430\u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0432\u0435\u0440\u0441\u0438\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439\u0441\u044f \u0432 \u043e\u043f\u0442\u0438\u043c\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438 <code>@Column</code>, \u0438\u043c\u0435\u044e\u0449\u0438\u043c\u0438 \u0442\u0438\u043f <code>integer<code> \u0438\u043b\u0438 <code>datetime</code>. \u0421\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 <code>@Version</code> \u0441 <code>@Id</code> \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.</p><p style="font-weight: bold; font-size: 1.1em">\u041f\u0440\u0438\u043c\u0435\u0440</p><pre><code>/**\n\ * @column(type="integer")\n\ * @version\n\ */\nprotected $version;\n</code></pre>
    4.75 -
     5.1 --- a/src/zh_CN/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/odm/Bundle_zh_CN.properties	Wed Jun 13 10:20:09 2012 +0900
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,83 +0,0 @@
     5.4 -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     5.5 -#
     5.6 -# Copyright 2012 Oracle and/or its affiliates. All rights reserved.
     5.7 -#
     5.8 -# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
     5.9 -# Other names may be trademarks of their respective owners.
    5.10 -#
    5.11 -# The contents of this file are subject to the terms of either the GNU
    5.12 -# General Public License Version 2 only ("GPL") or the Common
    5.13 -# Development and Distribution License("CDDL") (collectively, the
    5.14 -# "License"). You may not use this file except in compliance with the
    5.15 -# License. You can obtain a copy of the License at
    5.16 -# http://www.netbeans.org/cddl-gplv2.html
    5.17 -# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    5.18 -# specific language governing permissions and limitations under the
    5.19 -# License.  When distributing the software, include this License Header
    5.20 -# Notice in each file and include the License file at
    5.21 -# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
    5.22 -# particular file as subject to the "Classpath" exception as provided
    5.23 -# by Oracle in the GPL Version 2 section of the License file that
    5.24 -# accompanied this code. If applicable, add the following below the
    5.25 -# License Header, with the fields enclosed by brackets [] replaced by
    5.26 -# your own identifying information:
    5.27 -# "Portions Copyrighted [year] [name of copyright owner]"
    5.28 -#
    5.29 -# If you wish your version of this file to be governed by only the CDDL
    5.30 -# or only the GPL Version 2, indicate your decision by adding
    5.31 -# "[Contributor] elects to include this software in this distribution
    5.32 -# under the [CDDL or GPL Version 2] license." If you do not indicate a
    5.33 -# single choice of license, a recipient has the option to distribute
    5.34 -# your version of this file under either the CDDL, the GPL Version 2 or
    5.35 -# to extend the choice of license to its licensees as provided above.
    5.36 -# However, if you add GPL Version 2 code and therefore, elected the GPL
    5.37 -# Version 2 license, then the option applies only if the new code is
    5.38 -# made subject to such option by the copyright holder.
    5.39 -#
    5.40 -# Contributor(s):
    5.41 -#
    5.42 -# Portions Copyrighted 2012 Sun Microsystems, Inc.
    5.43 -
    5.44 -AlsoLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@AlsoLoad</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u6307\u5b9a\u8981\u68c0\u67e5\u7684\u9644\u52a0 <code>mongodb</code> \u5b57\u6bb5, \u5e76\u4ece\u4e2d (\u5982\u679c\u5b58\u5728) \u52a0\u8f7d\u6570\u636e\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Field\n\ * @AlsoLoad("oldFieldName")\n\ */\nprivate $fieldName;\n</code></pre>\n<p>\u4ee5\u4e0a <code>$fieldName</code> \u5c06\u4ece <code>fieldName</code> (\u5982\u679c\u5b58\u5728) \u4e2d\u52a0\u8f7d, \u5982\u679c\u4e0d\u5b58\u5728, \u5219\u5c06\u4ee5 <code>oldFieldName</code> \u4f5c\u4e3a\u540e\u5907\u3002</p>
    5.45 -BinTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Bin</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>bin</code>\u3002\u4f7f\u7528 <code>MongoBinData::BYTE_ARRAY</code> \u7c7b\u578b\u5c06\u503c\u8f6c\u6362\u4e3a <a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ *@Bin\n\ */\nprivate $data;\n</code></pre>
    5.46 -BinCustomTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinCustom</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>bin_custom</code>\u3002\u4f7f\u7528 <code>MongoBinData::CUSTOM</code> \u7c7b\u578b\u5c06\u503c\u8f6c\u6362\u4e3a <a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @BinCustom\n\ */\nprivate $data;\n</code></pre>
    5.47 -BinFuncTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinFunc</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>bin_func</code>\u3002\u4f7f\u7528 <code>MongoBinData::FUNC</code> \u7c7b\u578b\u5c06\u503c\u8f6c\u6362\u4e3a <a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @BinFunc\n\ */\nprivate $data;\n</code></pre>
    5.48 -BinMd5Tag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinMD5</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>bin_md5</code>\u3002\u4f7f\u7528 <code>MongoBinData::MD5</code> \u7c7b\u578b\u5c06\u503c\u8f6c\u6362\u4e3a <a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @BinMD5\n\ */\nprivate $password;\n</code></pre>
    5.49 -BinUuidTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@BinUUID</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>bin_uuid</code>\u3002\u4f7f\u7528 <code>MongoBinData::UUID</code> \u7c7b\u578b\u5c06\u503c\u8f6c\u6362\u4e3a <a href="http://www.php.net/manual/en/class.mongobindata.php"><code>MongoBinData</code></a>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @BinUUID\n\ */\nprivate $uuid;\n</code></pre>
    5.50 -BooleanTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Boolean</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>boolean</code>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Boolean\n\ */\nprivate $active;\n</code></pre>
    5.51 -CollectionTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Collection</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>collection</code>\u3002\u5c06\u503c\u6309\u7167\u6570\u5b57\u7d22\u5f15\u6570\u7ec4\u5b58\u50a8\u548c\u68c0\u7d22\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>strategy</code></b></td><td>\u4fdd\u5b58\u6570\u636e\u6240\u7528\u7684\u7b56\u7565\u3002\u53ef\u80fd\u503c\u4e3a <code>set</code> \u548c <code>pushAll</code>, \u9ed8\u8ba4\u503c\u4e3a <code>pushAll</code>\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Collection(strategy="pushAll")\n\ */\nprivate $tags = array();\n</code></pre>
    5.52 -DateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Date</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>date</code>\u3002\u4f7f\u7528 <code>MongoBinData::UUID</code> \u7c7b\u578b\u5c06\u503c\u8f6c\u6362\u4e3a <a href="http://www.php.net/manual/en/class.mongodate.php">MongoDate</a>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Date\n\ */\nprivate $createdAt;\n</code></pre>
    5.53 -DiscriminatorFieldTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorField</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u6b64\u6807\u6ce8\u662f\u7ee7\u627f\u5206\u5c42\u7ed3\u6784\u4e2d\u6700\u9876\u5c42/\u8d85\u7c7b\u7684\u5fc5\u9700\u6807\u6ce8\u3002\u5b83\u6307\u5b9a\u4fdd\u5b58\u7c7b\u540d\u7684\u5b57\u6bb5 (\u5b9e\u9645\u4e0a\u5c06\u6587\u6863\u5b9e\u4f8b\u5316\u4e3a\u8be5\u5b57\u6bb5) \u7684\u8be6\u7ec6\u4fe1\u606f\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>fieldName</code></b></td><td>\u9274\u522b\u5668\u7684\u5b57\u6bb5\u540d\u3002\u6b64\u540d\u79f0\u8fd8\u5728\u6570\u7ec4\u6c34\u5408\u671f\u95f4\u7528\u4f5c\u5173\u952e\u5b57\u6765\u6307\u5b9a\u7c7b\u540d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ * @DiscriminatorField(fieldName="type")\n\ */\nclass SuperUser {\n\    // ...\n}\n</code></pre>
    5.54 -DiscriminatorMapTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorMap</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u9274\u522b\u5668\u6620\u5c04\u662f\u7ee7\u627f\u5206\u5c42\u7ed3\u6784\u4e2d\u6700\u9876\u5c42/\u8d85\u7c7b\u7684\u5fc5\u9700\u6807\u6ce8\u3002\u5b83\u91c7\u7528\u6570\u7ec4\u4f5c\u4e3a\u552f\u4e00\u53c2\u6570, \u8be5\u6570\u7ec4\u5b9a\u4e49\u5e94\u5f53\u4ee5\u6570\u636e\u5e93\u7684\u4ec0\u4e48\u540d\u79f0\u4fdd\u5b58\u54ea\u4e2a\u7c7b\u3002\u5176\u5173\u952e\u5b57\u662f\u6570\u636e\u5e93\u503c, \u5176\u503c\u4e3a\u7c7b, \u6839\u636e\u7c7b\u662f\u5426\u4f4d\u4e8e\u540d\u79f0\u7a7a\u95f4\u4e2d, \u7c7b\u540d\u53ef\u4ee5\u662f\u5168\u9650\u5b9a\u7c7b\u540d\u6216\u975e\u9650\u5b9a\u7c7b\u540d\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ * @InheritanceType("SINGLE_COLLECTION")\n\ * @DiscriminatorField(fieldName="discr")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\    /**\n\     * @Field(type="string")\n\     */\n\    private $discr;\n\    // ...\n}\n</code></pre>
    5.55 -DistanceTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Distance</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06 <code>@Distance</code> \u6807\u6ce8\u4e0e\u5730\u7406\u7a7a\u95f4\u7d22\u5f15\u7ed3\u5408\u4f7f\u7528, \u5728\u8fd0\u884c <code>$near</code> \u67e5\u8be2\u65f6, \u5c06\u4f7f\u7528\u8ddd\u79bb\u503c\u586b\u5145\u8be5\u5c5e\u6027\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ * @Index(keys={"coordinates"="2d"})\n\ */\nclass Place {\n\    /**\n\     * @Id\n\     */\n\    public $id;\n\n\    /**\n\     * @EmbedOne(targetDocument="Coordinates")\n\     */\n\    public $coordinates;\n\n\    /**\n\     * @Distance\n\     */\n\    public $distance;\n}\n\n/**\n\ * @EmbeddedDocument\n\ */\nclass Coordinates {\n\    /**\n\     * @Float\n\     */\n\    public $latitude;\n\n\    /**\n\     * @Float\n\     */\n\    public $longitude;\n}\n</code></pre>\n<p>\u73b0\u5728\u53ef\u4ee5\u8fd0\u884c <code>near()</code> \u67e5\u8be2\u5e76\u8bbf\u95ee\u6b64\u8ddd\u79bb\u3002\u83b7\u53d6\u4e0e\u4e00\u7ec4\u5750\u6807\u8ddd\u79bb\u6700\u8fd1\u7684\u57ce\u5e02:</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n$city = $this->dm->createQuery('City')\n\        ->field('coordinates')->near(50, 60)\n\        ->limit(1)\n\        ->getQuery()\n\        ->getSingleResult();\necho $city->distance;\n</code></pre>
    5.56 -Doctrine2OdmAnnotationsProvider.name=Doctrine2 ODM
    5.57 -DocumentTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Document</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5fc5\u9700\u6807\u6ce8, \u7528\u4e8e\u5c06 <code>PHP</code> \u7c7b\u6807\u8bb0\u4e3a <code>Document</code>\u3002<code>Doctrine</code> <code>ODM</code> \u7ba1\u7406\u6807\u8bb0\u4e3a\u6587\u6863\u7684\u6240\u6709\u7c7b\u7684\u6301\u4e45\u6027\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>db</code></b></td><td><code>Document Manager</code> \u4f7f\u7528\u9ed8\u8ba4 <code>mongodb</code> \u6570\u636e\u5e93, \u9664\u975e\u8bbe\u7f6e\u4e86\u8981\u4f7f\u7528\u8be5\u6570\u636e\u5e93\u540d\u79f0, \u5426\u5219\u53ef\u4ee5\u6309\u6bcf\u4e2a\u6587\u6863\u6307\u5b9a\u6b64\u503c\u6765\u8986\u76d6\u8981\u4f7f\u7528\u7684\u6570\u636e\u5e93\u3002</td></tr><tr><td valign="top"><b><code>collection</code></b></td><td>\u9ed8\u8ba4\u60c5\u51b5\u4e0b, \u4ece\u6587\u6863\u7684\u7c7b\u540d\u4e2d\u63d0\u53d6\u96c6\u5408\u540d\u79f0, \u4f46\u6b64\u5c5e\u6027\u53ef\u7528\u4e8e\u8986\u76d6\u3002</td></tr><tr><td valign="top"><b><code>repositoryClass</code></b></td><td>\u6307\u5b9a\u5f53\u65f6\u8981\u4f7f\u7528\u7684\u5b9a\u5236\u8d44\u6e90\u5e93\u7c7b\u3002</td></tr><tr><td valign="top"><b><code>indexes</code></b></td><td>\u6307\u5b9a\u6b64\u6587\u6863\u7684\u7d22\u5f15\u6570\u7ec4\u3002</td></tr><tr><td valign="top"><b><code>requireIndexes</code></b></td><td>\u6307\u5b9a\u67e5\u8be2\u662f\u5426\u9700\u8981\u7d22\u5f15\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document(\n\ *     db="documents",\n\ *     collection="users",\n\ *     repositoryClass="MyProject\\UserRepository",\n\ *     indexes={\n\ *         @Index(keys={"username"="desc"}, options={"unique"=true})\n\ *     },\n\ *     requireIndexes=true\n\ * )\n\ */\nclass User {\n\    //...\n}\n</code></pre>
    5.58 -EmbedManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@EmbedMany</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u6b64\u6807\u6ce8\u7c7b\u4f3c\u4e8e <code>@EmbedOne</code>, \u4f46\u5e76\u975e\u5d4c\u5165\u4e00\u4e2a\u6587\u6863, \u800c\u662f\u901a\u77e5 <code>mongodb</code> \u5d4c\u5165\u6587\u6863\u96c6\u5408\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u76ee\u6807\u6587\u6863\u7684\u5b8c\u6574\u7c7b\u540d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u7528\u4e8e\u5728\u5176\u4e2d\u5b58\u50a8\u9274\u522b\u5668\u503c\u7684\u5b57\u6bb5\u540d\u3002</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u9274\u522b\u5668\u503c\u5230\u7c7b\u540d\u7684\u6620\u5c04\u3002</td></tr><tr><td valign="top"><b><code>strategy</code></b></td><td>\u4fdd\u5b58\u5f15\u7528\u6240\u7528\u7684\u7b56\u7565\u3002\u53ef\u80fd\u503c\u4e3a <code>set</code> \u548c <code>pushAll</code>, \u9ed8\u8ba4\u503c\u4e3a <code>pushAll</code>\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @EmbedMany(\n\ *     strategy="set",\n\ *     discriminatorField="type",\n\ *     discriminatorMap={\n\ *         "book"="Documents\\BookTag",\n\ *         "song"="Documents\\SongTag"\n\ *     }\n\ * )\n\ */\nprivate $tags = array();\n</code></pre>\n<p>\u6839\u636e <code>Document</code> \u7684\u7c7b\u578b, \u5c06\u5728\u540d\u4e3a <code>type<code> \u7684\u5b57\u6bb5\u4e2d\u5b58\u50a8 <code>user<code> \u6216 <code>author<code> \u7684\u503c, \u5e76\u5728\u6c34\u5408\u671f\u95f4\u4f7f\u7528\u8fd9\u4e9b\u503c\u6b63\u786e\u91cd\u6784\u9002\u5f53\u7684\u7c7b\u3002</p>
    5.59 -EmbedOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@EmbedOne</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@EmbedOne</code> \u6807\u6ce8\u7684\u5de5\u4f5c\u65b9\u5f0f\u4e0e <code>@ReferenceOne</code> \u57fa\u672c\u76f8\u540c, \u4e0d\u540c\u4e4b\u5904\u5728\u4e8e\u5728\u5176\u5185\u90e8, \u6587\u6863\u5c06\u5d4c\u5165\u5728 <code>mongodb</code> \u4e2d\u7684\u7236\u6587\u6863\u5185\u3002\u4ece <code>mongodb</code> \u6587\u6863:</p><p><i><code>Mongo</code> \u65b9\u6848\u8bbe\u8ba1\u4e2d\u7684\u4e3b\u8981\u95ee\u9898\u662f "\u6b64\u5bf9\u8c61\u9002\u5408\u5d4c\u5165\u81ea\u8eab\u7684\u96c6\u5408\u4e2d, \u8fd8\u662f\u5e94\u8be5\u5d4c\u5165\u5230\u5176\u4ed6\u96c6\u5408\u4e2d\u7684\u5bf9\u8c61\u5185?" \u5728\u5173\u7cfb\u6570\u636e\u5e93\u4e2d, \u6bcf\u4e2a\u76f8\u5173\u5b50\u9879\u901a\u5e38\u4f1a\u6210\u4e3a\u4e00\u4e2a\u5355\u72ec\u8868 (\u9664\u975e\u51fa\u4e8e\u6027\u80fd\u4e0a\u7684\u8003\u8651\u800c\u9006\u89c4\u8303\u5316)\u3002\u5728 <code>Mongo</code> \u4e2d, \u4e0d\u5efa\u8bae\u4f7f\u7528\u6b64\u65b9\u6cd5 - \u5d4c\u5165\u5bf9\u8c61\u8fd9\u79cd\u65b9\u6cd5\u4f1a\u66f4\u6709\u6548\u3002\u8fd9\u6837\u53ef\u5c06\u6570\u636e\u5e76\u7f6e\u5728\u78c1\u76d8\u4e0a; \u6d88\u9664\u4e86\u5ba2\u6237\u7aef-\u670d\u52a1\u5668\u5728\u6570\u636e\u5e93\u4e2d\u7684\u5468\u8f6c\u3002\u56e0\u6b64, \u901a\u5e38\u63d0\u51fa\u7684\u95ee\u9898\u662f "\u4e3a\u4f55\u4e0d\u5e0c\u671b\u5d4c\u5165\u6b64\u5bf9\u8c61?"</i></p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u76ee\u6807\u6587\u6863\u7684\u5b8c\u6574\u7c7b\u540d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u7528\u4e8e\u5728\u5176\u4e2d\u5b58\u50a8\u9274\u522b\u5668\u503c\u7684\u5b57\u6bb5\u540d\u3002</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u9274\u522b\u5668\u503c\u5230\u7c7b\u540d\u7684\u6620\u5c04\u3002</td></tr><tr><td valign="top"><b><code>strategy</code></b></td><td>\u4fdd\u5b58\u5f15\u7528\u6240\u7528\u7684\u7b56\u7565\u3002\u53ef\u80fd\u503c\u4e3a <code>set</code> \u548c <code>pushAll</code>, \u9ed8\u8ba4\u503c\u4e3a <code>pushAll</code>\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @EmbedOne(\n\ *     strategy="set",\n\ *     discriminatorField="type",\n\ *     discriminatorMap={\n\ *         "book"="Documents\\BookTag",\n\ *         "song"="Documents\\SongTag"\n\ *     }\n\ * )\n\ */\nprivate $tags = array();\n</code></pre>\n<p>\u6839\u636e <code>Document</code> \u7684\u7c7b\u578b, \u5c06\u5728\u540d\u4e3a <code>type<code> \u7684\u5b57\u6bb5\u4e2d\u5b58\u50a8 <code>user<code> \u6216 <code>author<code> \u7684\u503c, \u5e76\u5728\u6c34\u5408\u671f\u95f4\u4f7f\u7528\u8fd9\u4e9b\u503c\u6b63\u786e\u91cd\u6784\u9002\u5f53\u7684\u7c7b\u3002</p>
    5.60 -EmbeddedDocumentTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@EmbeddedDocument</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u6587\u6863\u6807\u8bb0\u4e3a\u53ef\u5d4c\u5165\u3002\u4e0d\u4f7f\u7528\u6b64\u6807\u6ce8\u5219\u65e0\u6cd5\u5d4c\u5165\u975e\u6587\u6863\u5bf9\u8c61\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\nclass Money {\n\    /**\n\     * @Float\n\     */\n\    protected $amount;\n\n\    public function __construct($amount) {\n\        $this->amount = (float) $amount;\n\    }\n\    //...\n}\n\n/**\n\ * @Document(db="finance", collection="wallets")\n\ */\nclass Wallet {\n\    /**\n\     * @EmbedOne(targetDocument="Money")\n\     */\n\    protected $money;\n\n\    public function setMoney(Money $money) {\n\        $this->money = $money;\n\    }\n\    //...\n}\n//...\n$wallet = new Wallet();\n$wallet->setMoney(new Money(34.39));\n$dm->persist($wallet);\n$dm->flush();\n</code></pre>\n<p>\u4ee5\u4e0a\u4ee3\u7801\u5c06\u4e0d\u5b58\u50a8 money \u5bf9\u8c61\u3002\u8981\u4f7f\u4e0a\u8ff0\u4ee3\u7801\u6b63\u5e38\u5de5\u4f5c, \u9700\u8981\u8fdb\u884c\u4ee5\u4e0b\u8bbe\u7f6e:</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Money {\n\    //...\n}\n</code></pre>\n<p>or</p><pre><code>\n/**\n\ * @EmbeddedDocument\n\ */\nclass Money {\n\    //...\n}\n</code></pre>\n<p>\u533a\u522b\u5728\u4e8e <code>@EmbeddedDocument</code> \u4e0d\u80fd\u5728\u6ca1\u6709\u7236 <code>@Document</code> \u7684\u60c5\u51b5\u4e0b\u5b58\u50a8, \u5e76\u4e14\u4e0d\u80fd\u6307\u5b9a\u81ea\u5df1\u7684\u6570\u636e\u5e93\u6216\u96c6\u5408\u5c5e\u6027\u3002</p>
    5.61 -FieldTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Field</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u5df2\u6807\u6ce8\u5b9e\u4f8b\u53d8\u91cf\u6807\u8bb0\u4e3a "\u6301\u4e45"\u3002\u5b83\u5fc5\u987b\u4f4d\u4e8e\u5b9e\u4f8b\u53d8\u91cf <code>PHP</code> <code>DocBlock</code> \u6ce8\u91ca\u5185\u3002\u4fdd\u5b58\u5728\u6b64\u53d8\u91cf\u4e2d\u7684\u4efb\u4f55\u503c\u90fd\u5c06\u5728\u5b9e\u4f8b\u53d8\u91cf\u6587\u6863\u7c7b\u7684\u751f\u547d\u5468\u671f\u5185\u4fdd\u5b58\u5230\u6587\u6863\u5b58\u50a8\u4ee5\u53ca\u4ece\u4e2d\u52a0\u8f7d\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>type</code></b></td><td><code>Doctrine</code> <code>ODM</code> <code>Type</code> \u7684\u540d\u79f0, \u5728 <code>PHP</code> \u548c\u6570\u636e\u5e93\u8868\u793a\u4e4b\u95f4\u8f6c\u6362\u3002\u53ef\u4ee5\u4e3a\u4ee5\u4e0b\u4e4b\u4e00: <code>string</code>, <code>boolean</code>, <code>int</code>, <code>float</code>, <code>hash</code>, <code>date</code>, <code>key</code>, <code>timestamp</code>, <code>bin</code>, <code>bin_func</code>, <code>bin_uuid</code>, <code>bin_md5</code>, <code>bin_custom</code>\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u9ed8\u8ba4\u60c5\u51b5\u4e0b, \u5c5e\u6027\u540d\u4e5f\u7528\u4e8e <code>mongodb</code> \u5b57\u6bb5\u540d, \u4f46\u662f, \u4f7f\u7528 <code>name<code> \u5c5e\u6027\u53ef\u4ee5\u6307\u5b9a\u5b57\u6bb5\u540d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Field(type="string")\n\ */\nprotected $username;\n\n/**\n\ * @Field(type="string" name="origin")\n\ */\nprotected $country;\n\n/**\n\ * @Column(type="float")\n\ */\nprotected $height;\n</code></pre>
    5.62 -FileTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@File</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5411 <code>ODM</code> \u6307\u51fa\u8be5\u5c5e\u6027\u4e3a\u6587\u4ef6, \u5fc5\u987b\u5148\u8bbe\u7f6e\u4e3a\u73b0\u6709\u6587\u4ef6\u8def\u5f84, \u7136\u540e\u518d\u4fdd\u5b58\u5230 <code>mongodb</code>\u3002\u5728\u68c0\u7d22\u65f6, \u8be5\u5c5e\u6027\u5c06\u5b9e\u4f8b\u5316\u4e3a <a href="http://www.php.net/manual/en/class.mongogridfsfile.php">MongoGridFSFile</a> \u7c7b\u7684\u5b9e\u4f8b\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @File\n\ */\nprivate $photo;\n</code></pre>
    5.63 -FloatTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Float</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>float</code>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Float\n\ */\nprivate $price;\n</code></pre>
    5.64 -HashTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Hash</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>hash</code>\u3002\u5c06\u503c\u4f5c\u4e3a\u5173\u8054\u6027\u6570\u7ec4\u5b58\u50a8\u548c\u68c0\u7d22\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Hash\n\ */\nprivate $map;\n</code></pre>
    5.65 -IdTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Id</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u5df2\u6807\u6ce8\u5b9e\u4f8b\u53d8\u91cf\u6807\u8bb0\u4e3a\u6587\u6863\u6807\u8bc6\u7b26\u3002\u6b64\u6807\u6ce8\u53ea\u662f\u4e00\u4e2a\u6807\u8bb0, \u6ca1\u6709\u5fc5\u9700\u6216\u53ef\u9009\u5c5e\u6027\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass User {\n\    /**\n\     * @Id\n\     */\n\    protected $id;\n}\n</code></pre>
    5.66 -IncrementTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Increment</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u589e\u91cf\u7c7b\u578b\u4e0e\u666e\u901a\u5b57\u6bb5\u76f8\u4f3c, \u4e0d\u540c\u4e4b\u5904\u5728\u4e8e\u66f4\u65b0\u65f6\u5b83\u5c06\u4f7f\u7528 <code>$inc</code> \u8fd0\u7b97\u7b26\u800c\u975e <code>$set</code>:</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\nclass Package {\n\    // ...\n\n\    /**\n\     * @Increment\n\     */\n\    protected $downloads = 0;\n\n\    public function incrementDownloads() {\n\        $this->downloads++;\n\    }\n\n\    // ...\n}\n</code></pre>\n<p>\u73b0\u5728, \u6309\u5982\u4e0b\u6240\u793a\u66f4\u65b0 <code>Package</code> \u5b9e\u4f8b:</p><pre><code>\n$package->incrementDownloads();\n$dm->flush();\n</code></pre>\n<p>\u53d1\u9001\u5230 <code>Mongo</code> \u7684\u67e5\u8be2\u5982\u4e0b\u6240\u793a:</p><pre><code>\narray(\n\    '$inc' => array(\n\        'downloads' => 1\n\    )\n)\n</code></pre>\n<p>\u5b83\u5c06\u6309\u7167\u65b0\u503c\u4e0e\u65e7\u503c\u4e4b\u95f4\u7684\u5dee\u503c\u6765\u589e\u52a0\u503c\u3002</p>
    5.67 -IndexTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Index</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5728\u7c7b\u7ea7\u522b\u4e0a <code>@Document</code> \u6807\u6ce8\u7684\u5185\u90e8\u4f7f\u7528\u7684\u6807\u6ce8\u3002\u5b83\u53ef\u7528\u4e8e\u63d0\u793a <code>mongodb</code> \u5728\u6307\u5b9a\u7684\u6587\u6863\u5b57\u6bb5\u4e0a\u751f\u6210\u6570\u636e\u5e93\u7d22\u5f15\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>keys</code></b></td><td>\u8981\u5efa\u7acb\u7d22\u5f15\u7684\u5b57\u6bb5\u3002</td></tr><tr><td valign="top"><b><code>options</code></b></td><td><code>MongoCollection</code> \u9009\u9879\u7684\u6570\u7ec4\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document(\n\ *   db="my_database",\n\ *   collection="users",\n\ *   indexes={\n\ *     @Index(keys={"username"="desc"}, options={"unique"=true})\n\ *   }\n\ * )\n\ */\nclass User {\n\    //...\n}\n</code></pre>\n<p>\u4e5f\u53ef\u4ec5\u5728\u5c5e\u6027\u4e0a\u6307\u5b9a <code>@Index</code> \u6216 <code>@UniqueIndex</code>:</p><pre><code>\n/**\n\ * @String\n\ * @UniqueIndex(safe="true")\n\ */\nprivate $username;\n</code></pre>
    5.68 -IntTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Int</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>int</code>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Int\n\ */\nprivate $amount;\n</code></pre>
    5.69 -InheritanceTypeTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@InheritanceTypeTag</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5728\u7ee7\u627f\u5206\u5c42\u7ed3\u6784\u4e2d, \u5fc5\u987b\u5728\u6700\u9876\u5c42/\u8d85\u7c7b\u4e0a\u4f7f\u7528\u6b64\u6807\u6ce8\u5b9a\u4e49\u5e94\u5f53\u5bf9\u7ee7\u627f\u4f7f\u7528\u54ea\u4e2a\u7b56\u7565\u3002\u5f53\u524d\u652f\u6301 <code>SINGLE_COLLECTION</code> \u548c <code>COLLECTION_PER_CLASS</code>\u3002</p><p>\u6b64\u6807\u6ce8\u59cb\u7ec8\u4e0e <code>@DiscriminatorMap</code> \u548c <code>@DiscriminatorField</code> \u6807\u6ce8\u4e00\u8d77\u4f7f\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ * @InheritanceType("COLLECTION_PER_CLASS")\n\ * @DiscriminatorMap({"person"="Person", "employee"="Employee"})\n\ */\nclass Person {\n\    // ...\n}\n\n/**\n\ * @Document\n\ * @InheritanceType("SINGLE_COLLECTION")\n\ * @DiscriminatorMap({"person"="Person", "employee"="Employee"})\n\ */\nclass Person {\n\    // ...\n}\n</code></pre>
    5.70 -KeyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Key</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>key</code>\u3002\u968f\u540e, \u6839\u636e\u503c\u7684\u8ba1\u7b97\u7ed3\u679c\u4e3a <code>true</code> \u6216 <code>false</code>, \u5b83\u5c06\u76f8\u5e94\u8f6c\u6362\u4e3a <a href="http://www.php.net/manual/en/class.mongomaxkey.php"><code>MongoMaxKey</code><a/> \u6216 <a href="http://www.php.net/manual/en/class.mongominkey.php"><code>MongoMinKey</code><a/>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Key\n\ */\nprivate $last;\n</code></pre>
    5.71 -MappedSuperclassTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@MappedSuperclass</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u8be5\u6807\u6ce8\u7528\u4e8e\u6307\u5b9a\u4f5c\u4e3a\u6587\u6863\u7c7b\u7236\u7ea7\u4e14\u4e0d\u5e94\u8fdb\u884c\u7ba1\u7406\u7684\u7c7b\u3002<a href="http://www.doctrine-project.org/projects/mongodb_odm/1.0/docs/reference/inheritance/en">\u4e86\u89e3\u66f4\u591a\u4fe1\u606f</a>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @MappedSuperclass\n\ */\nclass BaseDocument {\n\    // ...\n}\n</code></pre>
    5.72 -NotSavedTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@NotSaved</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u8be5\u6807\u6ce8\u7528\u4e8e\u6307\u5b9a\u52a0\u8f7d\u7684\u5c5e\u6027 (\u5982\u679c\u8fd9\u4e9b\u5c5e\u6027\u5b58\u5728\u4f46\u4ece\u672a\u4fdd\u5b58\u8fc7)\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @NotSaved\n\ */\npublic $field;\n</code></pre>
    5.73 -PreLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Preload</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u6587\u6863\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PreLoad</code> \u4e8b\u4ef6\u8c03\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PreLoad\n\     */\n\    public function preLoad(array &$data) {\n\        // ...\n\    }\n}\n</code></pre>
    5.74 -PostLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostLoad</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u6587\u6863\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PostLoad</code> \u4e8b\u4ef6\u8c03\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PostLoad\n\     */\n\    public function postLoad() {\n\        // ...\n\    }\n}\n</code></pre>
    5.75 -PostPersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostPersist</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u6587\u6863\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PostPersist</code> \u4e8b\u4ef6\u8c03\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PostPersist\n\     */\n\    public function postPersist() {\n\        // ...\n\    }\n}\n</code></pre>
    5.76 -PostRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostRemove</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u6587\u6863\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PostRemove</code> \u4e8b\u4ef6\u8c03\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PostRemove\n\     */\n\    public function postRemove() {\n\        // ...\n\    }\n}\n</code></pre>
    5.77 -PostUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u6587\u6863\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PostUpdate</code> \u4e8b\u4ef6\u8c03\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PostUpdate\n\     */\n\    public function postUpdate() {\n\        // ...\n\    }\n}\n</code></pre>
    5.78 -PrePersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PrePersist</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u6587\u6863\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PrePersist</code> \u4e8b\u4ef6\u8c03\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PrePersist\n\     */\n\    public function prePersist() {\n\        // ...\n\    }\n}\n</code></pre>
    5.79 -PreRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreRemove</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u6587\u6863\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PreRemove</code> \u4e8b\u4ef6\u8c03\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PreRemove\n\     */\n\    public function preRemove() {\n\        // ...\n\    }\n}\n</code></pre>
    5.80 -PreUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u6587\u6863\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PreUpdate</code> \u4e8b\u4ef6\u8c03\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Document\n\ */\nclass Article {\n\    // ...\n\n\    /**\n\     * @PreUpdate\n\     */\n\    public function preUpdate() {\n\        // ...\n\    }\n}\n</code></pre>
    5.81 -ReferenceManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ReferenceMany</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5b9a\u4e49\u5df2\u6807\u6ce8\u5b9e\u4f8b\u53d8\u91cf, \u7528\u4e8e\u4fdd\u5b58\u5f15\u7528\u6587\u6863\u7684\u96c6\u5408\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u76ee\u6807\u6587\u6863\u7684\u5b8c\u6574\u7c7b\u540d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>simple</code></b></td><td>\u521b\u5efa\u7b80\u5355\u5f15\u7528, \u53ea\u5b58\u50a8 <code>MongoId</code> \u800c\u975e <code>DBRef</code>\u3002</td></tr><tr><td valign="top"><b><code>cascade</code></b></td><td>\u5c42\u53e0\u9009\u9879\u3002</td></tr><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u7528\u4e8e\u5728\u5176\u4e2d\u5b58\u50a8\u9274\u522b\u5668\u503c\u7684\u5b57\u6bb5\u540d\u3002</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u9274\u522b\u5668\u503c\u5230\u7c7b\u540d\u7684\u6620\u5c04\u3002</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td>\u53cd\u5411\u7aef\u7684\u5b57\u6bb5\u540d\u3002\u4ec5\u5141\u8bb8\u5728\u5c5e\u4e3b\u7aef\u4f7f\u7528\u3002</td></tr><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u5c5e\u4e3b\u7aef\u7684\u540d\u79f0\u3002\u4ec5\u5141\u8bb8\u5728\u53cd\u5411\u7aef\u4f7f\u7528\u3002</td></tr><tr><td valign="top"><b><code>repositoryMethod</code></b></td><td>\u4e3a\u586b\u5145\u6b64\u5f15\u7528\u800c\u8c03\u7528\u7684\u8d44\u6e90\u5e93\u65b9\u6cd5\u7684\u540d\u79f0\u3002</td></tr><tr><td valign="top"><b><code>sort</code></b></td><td>\u52a0\u8f7d\u5f15\u7528\u7684\u67e5\u8be2\u7684\u9ed8\u8ba4\u6392\u5e8f\u3002</td></tr><tr><td valign="top"><b><code>criteria</code></b></td><td>\u52a0\u8f7d\u5f15\u7528\u7684\u67e5\u8be2\u7684\u9ed8\u8ba4\u6761\u4ef6\u6570\u7ec4\u3002</td></tr><tr><td valign="top"><b><code>limit</code></b></td><td>\u52a0\u8f7d\u5f15\u7528\u7684\u67e5\u8be2\u7684\u9650\u5236\u3002</td></tr><tr><td valign="top"><b><code>skip</code></b></td><td>\u8df3\u8fc7\u52a0\u8f7d\u5f15\u7528\u7684\u67e5\u8be2\u3002</td></tr><tr><td valign="top"><b><code>strategy</code></b></td><td>\u4fdd\u5b58\u5f15\u7528\u6240\u7528\u7684\u7b56\u7565\u3002\u53ef\u80fd\u503c\u4e3a <code>set</code> \u548c <code>pushAll</code>, \u9ed8\u8ba4\u503c\u4e3a <code>pushAll</code>\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @ReferenceMany(\n\ *     strategy="set",\n\ *     targetDocument="Documents\\Item",\n\ *     cascade="all",\n\ *     discriminatorField="type",\n\ *     discriminatorMap={\n\ *         "book"="Documents\\BookItem",\n\ *         "song"="Documents\\SongItem"\n\ *     }\n\ * )\n\ */\nprivate $cart;\n</code></pre>
    5.82 -StringTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@String</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>string</code>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @String\n\ */\nprivate $username;\n</code></pre>
    5.83 -TimestampTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Timestamp</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@Field</code> \u7684\u522b\u540d, <code>type</code> \u5c5e\u6027\u8bbe\u7f6e\u4e3a <code>timestamp</code>\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Timestamp\n\ */\nprivate $created;\n</code></pre>
    5.84 -UniqueIndexTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@UniqueIndex</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5b9a\u4e49\u7ed9\u5b9a\u6587\u6863\u4e2d\u7684\u552f\u4e00\u7d22\u5f15\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @String\n\ * @UniqueIndex\n\ */\nprivate $email;\n</code></pre>
    5.85 -ReferenceOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ReferenceOne</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5b9a\u4e49\u4fdd\u5b58\u76f8\u5173\u6587\u6863\u5b9e\u4f8b\u7684\u5b9e\u4f8b\u53d8\u91cf\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetDocument</code></b></td><td>\u76ee\u6807\u6587\u6863\u7684\u5b8c\u6574\u7c7b\u540d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>simple</code></b></td><td>\u521b\u5efa\u7b80\u5355\u5f15\u7528, \u53ea\u5b58\u50a8 <code>MongoId</code> \u800c\u975e <code>DBRef</code>\u3002</td></tr><tr><td valign="top"><b><code>cascade</code></b></td><td>\u5c42\u53e0\u9009\u9879\u3002</td></tr><tr><td valign="top"><b><code>discriminatorField</code></b></td><td>\u7528\u4e8e\u5728\u5176\u4e2d\u5b58\u50a8\u9274\u522b\u5668\u503c\u7684\u5b57\u6bb5\u540d\u3002</td></tr><tr><td valign="top"><b><code>discriminatorMap</code></b></td><td>\u9274\u522b\u5668\u503c\u5230\u7c7b\u540d\u7684\u6620\u5c04\u3002</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td>\u53cd\u5411\u7aef\u7684\u5b57\u6bb5\u540d\u3002\u4ec5\u5141\u8bb8\u5728\u5c5e\u4e3b\u7aef\u4f7f\u7528\u3002</td></tr><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u5c5e\u4e3b\u7aef\u7684\u540d\u79f0\u3002\u4ec5\u5141\u8bb8\u5728\u53cd\u5411\u7aef\u4f7f\u7528\u3002</td></tr><tr><td valign="top"><b><code>repositoryMethod</code></b></td><td>\u4e3a\u586b\u5145\u6b64\u5f15\u7528\u800c\u8c03\u7528\u7684\u8d44\u6e90\u5e93\u65b9\u6cd5\u7684\u540d\u79f0\u3002</td></tr><tr><td valign="top"><b><code>sort</code></b></td><td>\u52a0\u8f7d\u5f15\u7528\u7684\u67e5\u8be2\u7684\u9ed8\u8ba4\u6392\u5e8f\u3002</td></tr><tr><td valign="top"><b><code>criteria</code></b></td><td>\u52a0\u8f7d\u5f15\u7528\u7684\u67e5\u8be2\u7684\u9ed8\u8ba4\u6761\u4ef6\u6570\u7ec4\u3002</td></tr><tr><td valign="top"><b><code>limit</code></b></td><td>\u52a0\u8f7d\u5f15\u7528\u7684\u67e5\u8be2\u7684\u9650\u5236\u3002</td></tr><tr><td valign="top"><b><code>skip</code></b></td><td>\u8df3\u8fc7\u52a0\u8f7d\u5f15\u7528\u7684\u67e5\u8be2\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @ReferenceOne(\n\ *     targetDocument="Documents\\Item",\n\ *     cascade="all",\n\ *     discriminatorField="type",\n\ *     discriminatorMap={\n\ *         "book"="Documents\\BookItem",\n\ *         "song"="DOcuments\\SongItem"\n\ *     }\n\ * )\n\ */\nprivate $cart;\n</code></pre>
    5.86 -
     6.1 --- a/src/zh_CN/php/php-doctrine2/php-doctrine2/org/netbeans/modules/php/doctrine2/annotations/orm/Bundle_zh_CN.properties	Wed Jun 13 10:20:09 2012 +0900
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,72 +0,0 @@
     6.4 -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     6.5 -#
     6.6 -# Copyright 2012 Oracle and/or its affiliates. All rights reserved.
     6.7 -#
     6.8 -# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
     6.9 -# Other names may be trademarks of their respective owners.
    6.10 -#
    6.11 -# The contents of this file are subject to the terms of either the GNU
    6.12 -# General Public License Version 2 only ("GPL") or the Common
    6.13 -# Development and Distribution License("CDDL") (collectively, the
    6.14 -# "License"). You may not use this file except in compliance with the
    6.15 -# License. You can obtain a copy of the License at
    6.16 -# http://www.netbeans.org/cddl-gplv2.html
    6.17 -# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    6.18 -# specific language governing permissions and limitations under the
    6.19 -# License.  When distributing the software, include this License Header
    6.20 -# Notice in each file and include the License file at
    6.21 -# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
    6.22 -# particular file as subject to the "Classpath" exception as provided
    6.23 -# by Oracle in the GPL Version 2 section of the License file that
    6.24 -# accompanied this code. If applicable, add the following below the
    6.25 -# License Header, with the fields enclosed by brackets [] replaced by
    6.26 -# your own identifying information:
    6.27 -# "Portions Copyrighted [year] [name of copyright owner]"
    6.28 -#
    6.29 -# If you wish your version of this file to be governed by only the CDDL
    6.30 -# or only the GPL Version 2, indicate your decision by adding
    6.31 -# "[Contributor] elects to include this software in this distribution
    6.32 -# under the [CDDL or GPL Version 2] license." If you do not indicate a
    6.33 -# single choice of license, a recipient has the option to distribute
    6.34 -# your version of this file under either the CDDL, the GPL Version 2 or
    6.35 -# to extend the choice of license to its licensees as provided above.
    6.36 -# However, if you add GPL Version 2 code and therefore, elected the GPL
    6.37 -# Version 2 license, then the option applies only if the new code is
    6.38 -# made subject to such option by the copyright holder.
    6.39 -#
    6.40 -# Contributor(s):
    6.41 -#
    6.42 -# Portions Copyrighted 2012 Sun Microsystems, Inc.
    6.43 -
    6.44 -ColumnTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Column</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u5df2\u6807\u6ce8\u5b9e\u4f8b\u53d8\u91cf\u6807\u8bb0\u4e3a "\u6301\u4e45"\u3002\u5b83\u5fc5\u987b\u4f4d\u4e8e\u5b9e\u4f8b\u53d8\u91cf <code>PHP</code> <code>DocBlock</code> \u6ce8\u91ca\u5185\u3002\u4fdd\u5b58\u5728\u6b64\u53d8\u91cf\u4e2d\u7684\u4efb\u4f55\u503c\u90fd\u5c06\u5728\u5b9e\u4f8b\u53d8\u91cf\u5b9e\u4f53\u7c7b\u7684\u751f\u547d\u5468\u671f\u5185\u4fdd\u5b58\u5230\u6570\u636e\u5e93\u4ee5\u53ca\u4ece\u4e2d\u52a0\u8f7d\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>type</code></b></td><td><code>Doctrine</code> <code>Type</code> \u7684\u540d\u79f0, \u5728 <code>PHP</code> \u548c\u6570\u636e\u5e93\u8868\u793a\u4e4b\u95f4\u8f6c\u6362\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u9ed8\u8ba4\u60c5\u51b5\u4e0b, \u5c5e\u6027\u540d\u4e5f\u7528\u4e8e\u6570\u636e\u5e93\u5217\u540d, \u4f46\u662f, \u4f7f\u7528 <code>name</code> \u5c5e\u6027\u53ef\u4ee5\u786e\u5b9a\u5217\u540d\u3002</td></tr><tr><td valign="top"><b><code>length</code></b></td><td>\u7531 "string" \u7c7b\u578b\u7528\u4e8e\u786e\u5b9a\u5b83\u5728\u6570\u636e\u5e93\u4e2d\u7684\u6700\u5927\u957f\u5ea6\u3002<code>Doctrine</code> \u4e0d\u4e3a\u60a8\u9a8c\u8bc1\u5b57\u7b26\u4e32\u503c\u7684\u957f\u5ea6\u3002</td></tr><tr><td valign="top"><b><code>precision</code></b></td><td>\u5341\u8fdb\u5236 (\u51c6\u786e\u6570\u503c) \u5217\u7684\u7cbe\u5ea6 (\u4ec5\u9002\u7528\u4e8e\u5341\u8fdb\u5236\u5217)\u3002</td></tr><tr><td valign="top"><b><code>scale</code></b></td><td>\u5341\u8fdb\u5236 (\u51c6\u786e\u6570\u503c) \u5217\u7684\u5c0f\u6570\u4f4d\u6570 (\u4ec5\u9002\u7528\u4e8e\u5341\u8fdb\u5236\u5217)\u3002</td></tr><tr><td valign="top"><b><code>unique</code></b></td><td>\u7528\u4e8e\u786e\u5b9a\u5217\u503c\u662f\u5426\u5e94\u5f53\u5728\u5e95\u5c42\u5b9e\u4f53\u8868\u7684\u6240\u6709\u884c\u4e2d\u552f\u4e00\u7684\u5e03\u5c14\u503c\u3002</td></tr><tr><td valign="top"><b><code>nullable</code></b></td><td>\u786e\u5b9a\u6b64\u5217\u662f\u5426\u5141\u8bb8\u4f7f\u7528 <code>NULL</code> \u503c\u3002</td></tr><tr><td valign="top"><b><code>columnDefinition</code></b></td><td><code>DDL</code> <code>SQL</code> \u7247\u6bb5, \u4ece\u5217\u540d\u4e4b\u540e\u5f00\u59cb, \u6307\u5b9a\u5b8c\u6574 (\u4e0d\u53ef\u79fb\u690d!) \u5217\u5b9a\u4e49\u3002\u6b64\u5c5e\u6027\u5141\u8bb8\u4f7f\u7528\u9ad8\u7ea7 <code>RMDBS</code> \u529f\u80fd\u3002\u4f46\u662f, \u5e94\u8be5\u6ce8\u610f\u6b64\u529f\u80fd\u7684\u4f7f\u7528\u53ca\u540e\u679c\u3002\u5982\u679c\u4f7f\u7528 <code>columnDefinition</code>, \u5219 <code>SchemaTool</code> \u5c06\u4e0d\u518d\u6b63\u786e\u68c0\u6d4b\u5217\u4e0a\u7684\u66f4\u6539\u3002</td></tr></table>\n<p>\u6b64\u5916, \u8bf7\u8bb0\u4f4f, <code>type</code> \u5c5e\u6027\u4ecd\u5904\u7406 <code>PHP</code> \u4e0e\u6570\u636e\u5e93\u503c\u4e4b\u95f4\u7684\u8f6c\u6362\u3002\u5982\u679c\u5728\u7528\u4e8e\u8868\u4e4b\u95f4\u8fde\u63a5\u7684\u5217\u4e0a\u4f7f\u7528\u6b64\u5c5e\u6027, \u5219\u5e94\u6ce8\u610f <code>@JoinColumn</code>\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Column(type="string", length=32, unique=true, nullable=false)\n\ */\nprotected $username;\n\n/**\n\ * @Column(type="string", columnDefinition="CHAR(2) NOT NULL")\n\ */\nprotected $country;\n\n/**\n\ * @Column(type="decimal", precision=2, scale=1)\n\ */\nprotected $height;\n</code></pre>
    6.45 -ChangeTrackingPolicyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ChangeTrackingPolicy</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u4f7f\u7528 <code>ChangeTrackingPolicy</code> \u6807\u6ce8\u53ef\u4ee5\u6307\u5b9a <code>Doctrine 2</code> <code>UnitOfWork</code> \u5728\u5237\u65b0\u671f\u95f4\u5e94\u5f53\u5982\u4f55\u68c0\u6d4b\u5b9e\u4f53\u5c5e\u6027\u4e2d\u7684\u66f4\u6539\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5c06\u6839\u636e\u5ef6\u8fdf\u7684\u9690\u5f0f\u7b56\u7565\u68c0\u67e5\u6bcf\u4e2a\u5b9e\u4f53, \u8fd9\u610f\u5473\u7740\u5728\u5237\u65b0\u65f6, <code>UnitOfWork</code> \u5c06\u5b9e\u4f53\u7684\u6240\u6709\u5c5e\u6027\u4e0e\u4ee5\u524d\u5b58\u50a8\u7684\u5feb\u7167\u8fdb\u884c\u6bd4\u8f83\u3002\u8be5\u529f\u80fd\u73b0\u6210\u53ef\u7528, \u4f46\u662f\u5728\u53ef\u4ee5\u9009\u62e9\u4f7f\u7528\u5176\u4ed6\u8ddf\u8e2a\u7b56\u7565\u65f6, \u53ef\u80fd\u9700\u8981\u4f18\u5316\u5237\u65b0\u6027\u80fd\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>\n/**\n\ * @Entity\n\ * @ChangeTrackingPolicy("DEFERRED_IMPLICIT")\n\ * @ChangeTrackingPolicy("DEFERRED_EXPLICIT")\n\ * @ChangeTrackingPolicy("NOTIFY")\n\ */\nclass User {}\n</code></pre>
    6.46 -DiscriminatorColumnTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorColumn</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u6b64\u6807\u6ce8\u662f\u7ee7\u627f\u5206\u5c42\u7ed3\u6784\u4e2d\u6700\u9876\u5c42/\u8d85\u7c7b\u7684\u5fc5\u9700\u6807\u6ce8\u3002\u5b83\u6307\u5b9a\u4fdd\u5b58\u7c7b\u540d\u7684\u5217 (\u5b9e\u9645\u5c06\u5b9e\u4f53\u5b9e\u4f8b\u5316\u4e3a\u8be5\u5217) \u7684\u8be6\u7ec6\u4fe1\u606f\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u9274\u522b\u5668\u7684\u5217\u540d\u3002\u6b64\u540d\u79f0\u8fd8\u53ef\u5728\u6570\u7ec4\u6c34\u5408\u671f\u95f4\u7528\u4f5c\u5173\u952e\u5b57\u7c7b\u6307\u5b9a\u7c7b\u540d\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>type</code></b></td><td>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6b64\u5c5e\u6027\u4e3a <code>string</code>\u3002</td></tr><tr><td valign="top"><b><code>length</code></b></td><td>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6b64\u5c5e\u6027\u4e3a <code>255</code>\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @InheritanceType("JOINED")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\    // ...\n}\n</code></pre>
    6.47 -DiscriminatorMapTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@DiscriminatorMap</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>DiscriminatorMap</code> \u662f\u7ee7\u627f\u5206\u5c42\u7ed3\u6784\u4e2d\u6700\u9876\u5c42/\u8d85\u7c7b\u7684\u5fc5\u9700\u6807\u6ce8\u3002\u5b83\u91c7\u7528\u6570\u7ec4\u4f5c\u4e3a\u552f\u4e00\u53c2\u6570, \u8be5\u6570\u7ec4\u5b9a\u4e49\u5e94\u5f53\u4ee5\u6570\u636e\u5e93\u7684\u4ec0\u4e48\u540d\u79f0\u4fdd\u5b58\u54ea\u4e2a\u7c7b\u3002\u5176\u5173\u952e\u5b57\u662f\u6570\u636e\u5e93\u503c, \u5176\u503c\u4e3a\u7c7b, \u6839\u636e\u7c7b\u662f\u5426\u4f4d\u4e8e\u540d\u79f0\u7a7a\u95f4\u4e2d, \u7c7b\u540d\u53ef\u4ee5\u662f\u5168\u9650\u5b9a\u7c7b\u540d\u6216\u975e\u9650\u5b9a\u7c7b\u540d\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @InheritanceType("JOINED")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\    // ...\n}\n</code></pre>
    6.48 -Doctrine2OrmAnnotationsProvider.name=Doctrine2 ORM
    6.49 -EntityTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Entity</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5fc5\u9700\u6807\u6ce8, \u7528\u4e8e\u5c06 <code>PHP</code> \u7c7b\u6807\u8bb0\u4e3a <code>Entity</code>\u3002<code>Doctrine</code> \u7ba1\u7406\u6807\u8bb0\u4e3a\u5b9e\u4f53\u7684\u6240\u6709\u7c7b\u7684\u6301\u4e45\u6027\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>repositoryClass</code></b></td><td>\u6307\u5b9a <code>EntityRepository</code> \u7684\u5b50\u7c7b\u7684 <code>FQCN</code>\u3002\u63a8\u8350\u4f7f\u7528\u5b9e\u4f53\u7684\u8d44\u6e90\u5e93\u5c06\u7279\u5316\u7684 <code>DQL</code> \u548c <code>SQL</code> \u64cd\u4f5c\u4fdd\u6301\u5728 <code>Model</code>/<code>Domain</code> \u5c42\u4e4b\u5916\u3002</td></tr><tr><td valign="top"><b><code>readOnly</code></b></td><td>(>= 2.1) \u6307\u5b9a\u5c06\u6b64\u5b9e\u4f53\u6807\u8bb0\u4e3a\u53ea\u8bfb, \u4e0d\u8003\u8651\u8fdb\u884c\u66f4\u6539\u8ddf\u8e2a\u3002\u4e0d\u8fc7, \u53ef\u4ee5\u4fdd\u5b58\u548c\u5220\u9664\u6b64\u7c7b\u578b\u7684\u5b9e\u4f53\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @Entity(repositoryClass="MyProject\\UserRepository")\n\ */\nclass User {\n\    //...\n}\n</code></pre>
    6.50 -GeneratedValueTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@GeneratedValue</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u6307\u5b9a\u5bf9\u7531 <code>@Id</code> \u6807\u6ce8\u7684\u5b9e\u4f8b\u53d8\u91cf\u7684\u6807\u8bc6\u7b26\u751f\u6210\u5e94\u4f7f\u7528\u54ea\u4e2a\u7b56\u7565\u3002\u6b64\u6807\u6ce8\u53ef\u9009, \u53ea\u6709\u4e0e <code>@Id</code> \u4e00\u8d77\u4f7f\u7528\u65f6\u624d\u6709\u610f\u4e49\u3002</p>\n<p>\u5982\u679c\u672a\u4f7f\u7528 <code>@Id</code> \u6307\u5b9a\u6b64\u6807\u6ce8, \u5219\u5c06 <code>NONE</code> \u7b56\u7565\u7528\u4f5c\u9ed8\u8ba4\u503c\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>strategy</code></b></td><td>\u8bbe\u7f6e\u6807\u8bc6\u7b26\u751f\u6210\u7b56\u7565\u7684\u540d\u79f0\u3002\u6709\u6548\u503c\u4e3a <code>AUTO</code>, <code>SEQUENCE</code>, <code>TABLE</code>, <code>IDENTITY</code> \u548c <code>NONE</code>\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @Id\n\ * @Column(type="integer")\n\ * @generatedValue(strategy="IDENTITY")\n\ */\nprotected $id = null;\n</code></pre>
    6.51 -HasLifecycleCallbacksTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@HasLifecycleCallbacks</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5fc5\u987b\u5728\u5b9e\u4f53\u7c7b <code>PHP</code> <code>DocBlock</code> \u4e0a\u8bbe\u7f6e\u7684\u6807\u6ce8, \u7528\u4e8e\u901a\u77e5 <code>Doctrine</code> \u6b64\u5b9e\u4f53\u81f3\u5c11\u5728\u5176\u65b9\u6cd5\u4e4b\u4e00\u4e0a\u8bbe\u7f6e\u4e86\u5b9e\u4f53\u751f\u547d\u5468\u671f\u56de\u8c03\u6807\u6ce8\u3002\u4f7f\u7528 <code>@PostLoad</code>, <code>@PrePersist</code>, <code>@PostPersist</code>, <code>@PreRemove</code>, <code>@PostRemove</code>, <code>@PreUpdate</code> \u6216 <code>@PostUpdate</code> \u800c\u4e0d\u4f7f\u7528\u6b64\u6807\u8bb0\u6807\u6ce8\u5c06\u4f7f <code>Doctrine</code> \u5ffd\u7565\u56de\u8c03\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @HasLifecycleCallbacks\n\ */\nclass User {\n\    /**\n\     * @PostPersist\n\     */\n\    public function sendOptinMail() {}\n}\n</code></pre>
    6.52 -IndexTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Index</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u8be5\u6807\u6ce8\u5728\u5b9e\u4f53\u7c7b\u7ea7\u522b\u7684 <code>@Table</code> \u6807\u6ce8\u5185\u4f7f\u7528\u3002\u5b83\u7528\u4e8e\u63d0\u793a <code>SchemaTool</code> \u5728\u6307\u5b9a\u8868\u5217\u4e0a\u751f\u6210\u6570\u636e\u5e93\u7d22\u5f15\u3002\u4ec5\u5728 <code>SchemaTool</code> \u65b9\u6848\u751f\u6210\u4e0a\u4e0b\u6587\u4e2d\u624d\u6709\u610f\u4e49\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td><code>Index</code> \u7684\u540d\u79f0\u3002</td></tr><tr><td valign="top"><b><code>columns</code></b></td><td>\u5217\u7684\u6570\u7ec4\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @Table(name="ecommerce_products",indexes={@index(name="search_idx", columns={"name", "email"})})\n\ */\nclass ECommerceProduct {\n}\n</code></pre>
    6.53 -IdTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Id</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u5df2\u6807\u6ce8\u5b9e\u4f8b\u53d8\u91cf\u6807\u8bb0\u4e3a\u6587\u6863\u6807\u8bc6\u7b26, \u5373\u6570\u636e\u5e93\u4e2d\u7684\u4e3b\u952e\u3002\u6b64\u6807\u6ce8\u53ea\u662f\u4e00\u4e2a\u6807\u8bb0, \u6ca1\u6709\u5fc5\u9700\u6216\u53ef\u9009\u5c5e\u6027\u3002\u5bf9\u4e8e\u5177\u6709\u591a\u4e2a\u6807\u8bc6\u7b26\u5217\u7684\u5b9e\u4f53, \u5fc5\u987b\u4f7f\u7528 <code>@Id</code> \u6807\u8bb0\u6bcf\u4e00\u5217\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @Id\n\ * @Column(type="integer")\n\ */\nprotected $id = null;\n</code></pre>
    6.54 -InheritanceTypeTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@InheritanceType</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5728\u7ee7\u627f\u5206\u5c42\u7ed3\u6784\u4e2d, \u5fc5\u987b\u5728\u6700\u9876\u5c42/\u8d85\u7c7b\u4e0a\u4f7f\u7528\u6b64\u6807\u6ce8\u5b9a\u4e49\u5e94\u5f53\u5bf9\u7ee7\u627f\u4f7f\u7528\u54ea\u4e2a\u7b56\u7565\u3002\u5f53\u524d\u652f\u6301 <code>Single Table</code> \u548c <code>Class Table</code> \u7ee7\u627f\u3002</p>\n<p>\u6b64\u6807\u6ce8\u4e00\u76f4\u4e0e <code>@DiscriminatorMap</code> \u548c <code>@DiscriminatorColumn</code> \u6807\u6ce8\u4e00\u8d77\u4f7f\u7528\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @InheritanceType("SINGLE_TABLE")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\    // ...\n}\n\n/**\n\ * @Entity\n\ * @InheritanceType("JOINED")\n\ * @DiscriminatorColumn(name="discr", type="string")\n\ * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})\n\ */\nclass Person {\n\    // ...\n}\n</code></pre>
    6.55 -JoinColumnTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@JoinColumn</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u6b64\u6807\u6ce8\u5728 <code>@ManyToOne</code>, <code>@OneToOne</code> \u5b57\u6bb5\u4e2d\u7684\u5173\u7cfb\u4e0a\u4e0b\u6587\u5185\u4ee5\u53ca\u5d4c\u5957\u5728 <code>@ManyToMany</code> \u4e2d\u7684 <code>@JoinTable</code> \u4e0a\u4e0b\u6587\u5185\u4f7f\u7528\u3002\u6b64\u6807\u6ce8\u4e0d\u662f\u5fc5\u9700\u7684\u3002\u5982\u679c\u672a\u6307\u5b9a, \u5219\u5c06\u4ece\u8868\u548c\u4e3b\u952e\u540d\u63a8\u65ad\u5c5e\u6027 <code>name</code> \u548c <code>referencedColumnName</code>\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u4fdd\u5b58\u6b64\u5173\u7cfb\u7684\u5916\u952e\u6807\u8bc6\u7b26\u7684\u5217\u540d\u3002\u5728 <code>@JoinTable</code> \u7684\u4e0a\u4e0b\u6587\u4e2d, \u5b83\u6307\u5b9a\u8fde\u63a5\u8868\u4e2d\u7684\u5217\u540d\u3002</td></tr><tr><td valign="top"><b><code>referencedColumnName</code></b></td><td>\u7528\u4e8e\u8fde\u63a5\u6b64\u5173\u7cfb\u7684\u4e3b\u952e\u6807\u8bc6\u7b26\u7684\u540d\u79f0\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>unique</code></b></td><td>\u786e\u5b9a\u6b64\u5173\u7cfb\u5728\u53d7\u5f71\u54cd\u7684\u5b9e\u4f53\u4e4b\u95f4\u662f\u5426\u72ec\u5360, \u4ee5\u53ca\u662f\u5426\u5e94\u5f53\u5728\u6570\u636e\u5e93\u7ea6\u675f\u7ea7\u522b\u4e0a\u8fd9\u6837\u8fdb\u884c\u5f3a\u5236\u3002\u9ed8\u8ba4\u503c\u4e3a <code>false</code>\u3002</td></tr><tr><td valign="top"><b><code>nullable</code></b></td><td>\u786e\u5b9a\u76f8\u5173\u5b9e\u4f53\u662f\u5fc5\u9700\u7684, \u8fd8\u662f\u5141\u8bb8\u5c06 <code>null</code> \u4f5c\u4e3a\u5173\u7cfb\u7684\u72b6\u6001\u3002\u9ed8\u8ba4\u503c\u4e3a <code>true</code>\u3002</td></tr><tr><td valign="top"><b><code>onDelete</code></b></td><td>\u5c42\u53e0\u64cd\u4f5c (\u6570\u636e\u5e93\u7ea7\u522b)\u3002</td></tr><tr><td valign="top"><b><code>columnDefinition</code></b></td><td><code>DDL</code> <code>SQL</code> \u7247\u6bb5, \u4ece\u5217\u540d\u4e4b\u540e\u5f00\u59cb, \u6307\u5b9a\u5b8c\u6574 (\u4e0d\u53ef\u79fb\u690d!) \u5217\u5b9a\u4e49\u3002\u6b64\u5c5e\u6027\u5141\u8bb8\u4f7f\u7528\u9ad8\u7ea7 <code>RMDBS</code> \u529f\u80fd\u3002\u5982\u679c\u9700\u8981\u7565\u4e3a\u4e0d\u540c\u7684\u5217\u5b9a\u4e49 (\u4f8b\u5982, \u6709\u5173 <code>NULL</code>/<code>NOT NULL</code> \u9ed8\u8ba4\u503c\u7684\u5b9a\u4e49) \u7528\u4e8e\u8fde\u63a5\u5217, \u5219\u5fc5\u987b\u5728 <code>@JoinColumn</code> \u4e0a\u4f7f\u7528\u6b64\u5c5e\u6027\u3002\u4f46\u662f, \u9ed8\u8ba4\u60c5\u51b5\u4e0b, <code>@Column</code> \u4e0a\u7684 <code>columnDefinition</code> \u5c5e\u6027\u4e5f\u4f1a\u8bbe\u7f6e\u76f8\u5173 <code>@JoinColumn</code> \u7684 columnDefinition\u3002\u8981\u4f7f\u5916\u952e\u6b63\u5e38\u5de5\u4f5c, \u5fc5\u987b\u4f7f\u7528\u6b64\u5c5e\u6027\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @OneToOne(targetEntity="Customer")\n\ * @JoinColumn(name="customer_id", referencedColumnName="id")\n\ */\nprivate $customer;\n</code></pre>
    6.56 -JoinColumnsTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@JoinColumns</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@JoinColumn</code> \u6807\u6ce8\u7684\u6570\u7ec4, \u7528\u4e8e\u5177\u6709\u591a\u4e2a\u6807\u8bc6\u7b26\u7684\u5b9e\u4f53\u7684 <code>@ManyToOne</code> \u6216 <code>@OneToOne</code> \u5173\u7cfb\u3002</p>
    6.57 -JoinTableTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@JoinTable</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5728\u5173\u7cfb\u7684\u5c5e\u4e3b\u7aef\u4f7f\u7528 <code>@OneToMany</code> \u6216 <code>@ManyToMany</code> \u9700\u8981\u6307\u5b9a\u63cf\u8ff0\u6570\u636e\u5e93\u8fde\u63a5\u8868\u8be6\u7ec6\u4fe1\u606f\u7684 <code>@JoinTable</code> \u6807\u6ce8\u3002\u5982\u679c\u5728\u8fd9\u4e9b\u5173\u7cfb\u4e0a\u672a\u6307\u5b9a <code>@JoinTable</code>, \u5219\u5c06\u5e94\u7528\u4f7f\u7528\u53d7\u5f71\u54cd\u7684\u8868\u548c\u5217\u540d\u7684\u5408\u7406\u6620\u5c04\u9ed8\u8ba4\u503c\u3002</p>\n<p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u8fde\u63a5\u8868\u7684\u6570\u636e\u5e93\u540d\u79f0\u3002</td></tr><tr><td valign="top"><b><code>joinColumns</code></b></td><td><code>@JoinColumn</code> \u6807\u6ce8\u7684\u6570\u7ec4, \u63cf\u8ff0\u5c5e\u4e3b\u5b9e\u4f53\u8868\u4e0e\u8fde\u63a5\u8868\u4e4b\u95f4\u7684\u8fde\u63a5\u5173\u7cfb\u3002</td></tr><tr><td valign="top"><b><code>inverseJoinColumns</code></b></td><td><code>@JoinColumn</code> \u6807\u6ce8\u7684\u6570\u7ec4, \u63cf\u8ff0\u53cd\u5411\u5b9e\u4f53\u8868\u4e0e\u8fde\u63a5\u8868\u4e4b\u95f4\u7684\u8fde\u63a5\u5173\u7cfb\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @ManyToMany(targetEntity="Phonenumber")\n\ * @JoinTable(name="users_phonenumbers",\n\ *      joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},\n\ *      inverseJoinColumns={@JoinColumn(name="phonenumber_id", referencedColumnName="id", unique=true)}\n\ * )\n\ */\npublic $phonenumbers;\n</code></pre>
    6.58 -ManyToOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ManyToOne</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5b9a\u4e49\u5df2\u6807\u6ce8\u5b9e\u4f8b\u53d8\u91cf, \u7528\u4e8e\u4fdd\u5b58\u63cf\u8ff0\u4e24\u4e2a\u5b9e\u4f53\u4e4b\u95f4\u7684\u591a\u5bf9\u4e00\u5173\u7cfb\u7684\u5f15\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td>\u6240\u5f15\u7528\u76ee\u6807\u5b9e\u4f53\u7684 <code>FQCN</code>\u3002\u5982\u679c\u4e24\u4e2a\u7c7b\u4f4d\u4e8e\u540c\u4e00\u540d\u79f0\u7a7a\u95f4\u4e2d, \u5219\u53ef\u4ee5\u4e3a\u975e\u9650\u5b9a\u7c7b\u540d\u3002<b>\u91cd\u8981\u8bf4\u660e</b>: \u6ca1\u6709\u524d\u7f6e\u53cd\u659c\u6760!</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>cascade</code></b></td><td>\u5c42\u53e0\u9009\u9879\u3002</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td><code>LAZY</code> \u6216 <code>EAGER</code> \u4e4b\u4e00\u3002</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td><code>inversedBy</code> \u5c5e\u6027\u6307\u5b9a\u4f5c\u4e3a\u5173\u7cfb\u53cd\u5411\u7aef\u7684\u5b9e\u4f53\u4e2d\u7684\u5b57\u6bb5\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @ManyToOne(targetEntity="Cart", cascade={"all"}, fetch="EAGER")\n\ */\nprivate $cart;\n</code></pre>
    6.59 -ManyToManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@ManyToMany</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5b9a\u4e49\u4fdd\u5b58\u4e24\u4e2a\u5b9e\u4f53\u4e4b\u95f4\u591a\u5bf9\u591a\u5173\u7cfb\u7684\u5b9e\u4f8b\u53d8\u91cf\u3002<code>@JoinTable</code> \u662f\u9644\u52a0\u7684\u53ef\u9009\u6807\u6ce8, \u5177\u6709\u4f7f\u7528\u4e24\u4e2a\u76f8\u5173\u5b9e\u4f53\u7684\u8868\u548c\u540d\u79f0\u7684\u5408\u7406\u9ed8\u8ba4\u914d\u7f6e\u503c\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td>\u6240\u5f15\u7528\u76ee\u6807\u5b9e\u4f53\u7684 <code>FQCN</code>\u3002\u5982\u679c\u4e24\u4e2a\u7c7b\u4f4d\u4e8e\u540c\u4e00\u540d\u79f0\u7a7a\u95f4\u4e2d, \u5219\u4e3a\u975e\u9650\u5b9a\u7c7b\u540d\u3002<b>\u91cd\u8981\u8bf4\u660e</b>: \u6ca1\u6709\u524d\u7f6e\u53cd\u659c\u6760!</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u6b64\u9009\u9879\u6307\u5b9a\u4f5c\u4e3a\u6b64\u5173\u7cfb\u5c5e\u4e3b\u7aef\u7684 <code>targetEntity</code> \u4e0a\u7684\u5c5e\u6027\u540d\u3002\u5b83\u662f\u5173\u7cfb\u53cd\u5411\u7aef\u7684\u5fc5\u9700\u5c5e\u6027\u3002</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td><code>inversedBy</code> \u5c5e\u6027\u6307\u5b9a\u4f5c\u4e3a\u5173\u7cfb\u53cd\u5411\u7aef\u7684\u5b9e\u4f53\u4e2d\u7684 \ufb01eld\u3002</td></tr><tr><td valign="top"><b><code>cascade</code></b></td><td>\u5c42\u53e0\u9009\u9879\u3002</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td><code>LAZY</code>, <code>EXTRA_LAZY</code> \u6216 <code>EAGER</code> \u4e4b\u4e00\u3002</td></tr><tr><td valign="top"><b><code>indexBy</code></b></td><td>\u5728\u76ee\u6807\u5b9e\u4f53\u4e0a\u6309\u5b57\u6bb5\u4e3a\u96c6\u5408\u5efa\u7acb\u7d22\u5f15\u3002</td></tr></table>\n<p>\u5bf9\u4e8e <code>ManyToMany</code> \u53cc\u5411\u5173\u7cfb, \u4efb\u610f\u7aef\u5747\u53ef\u4ee5\u4e3a\u5c5e\u4e3b\u7aef (\u8be5\u7aef\u5b9a\u4e49 <code>@JoinTable</code> \u548c/\u6216\u4e0d\u4f7f\u7528 <code>mappedBy</code> \u5c5e\u6027\u4ece\u800c\u4f7f\u7528\u9ed8\u8ba4\u8fde\u63a5\u8868)\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * Owning Side\n\ *\n\ * @ManyToMany(targetEntity="Group", inversedBy="features")\n\ * @JoinTable(name="user_groups",\n\ *      joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},\n\ *      inverseJoinColumns={@JoinColumn(name="group_id", referencedColumnName="id")}\n\ *      )\n\ */\nprivate $groups;\n\n/**\n\ * Inverse Side\n\ *\n\ * @ManyToMany(targetEntity="User", mappedBy="groups")\n\ */\nprivate $features;\n</code></pre>
    6.60 -MappedSuperclassTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@MappedSuperclass</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u6620\u5c04\u7684\u8d85\u7c7b\u662f\u62bd\u8c61\u7c7b\u6216\u5177\u4f53\u7c7b, \u4e3a\u5176\u5b50\u7c7b\u63d0\u4f9b\u6301\u4e45\u6027\u5b9e\u4f53\u72b6\u6001\u548c\u6620\u5c04\u4fe1\u606f, \u4f46\u672c\u8eab\u5e76\u975e\u5b9e\u4f53\u3002\u6b64\u6807\u6ce8\u5728 <code>Class<code> <code>DocBlock</code> \u4e0a\u6307\u5b9a, \u6ca1\u6709\u4efb\u4f55\u9644\u52a0\u5c5e\u6027\u3002</p><p><code>@MappedSuperclass</code> \u6807\u6ce8\u4e0d\u80fd\u4e0e <code>@Entity</code> \u4e00\u8d77\u4f7f\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>repositoryClass</code></b></td><td>(>= 2.2) \u6307\u5b9a <code>EntityRepository</code> \u7684\u5b50\u7c7b\u7684 <code>FQCN</code>\u3002\u5c06\u7531<code>\u6620\u5c04\u7684\u8d85\u7c7b</code>\u7684\u6240\u6709\u5b50\u7c7b\u7ee7\u627f\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @MappedSuperclass\n\ */\nclass MappedSuperclassBase {\n\    // ... fields and methods\n}\n\n/**\n\ * @Entity\n\ */\nclass EntitySubClassFoo extends MappedSuperclassBase {\n\    // ... fields and methods\n}\n</code></pre>
    6.61 -OneToOneTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@OneToOne</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p><code>@OneToOne</code> \u6807\u6ce8\u7684\u5de5\u4f5c\u65b9\u5f0f\u4e0e <code>@ManyToOne</code> \u57fa\u672c\u76f8\u540c, \u4f46\u5b83\u8fd8\u6709\u4e00\u4e2a\u53ef\u6307\u5b9a\u7684\u9644\u52a0\u9009\u9879\u3002\u4f7f\u7528\u76ee\u6807\u5b9e\u4f53\u8868\u548c\u4e3b\u952e\u5217\u540d\u7684 <code>@JoinColumn</code> \u7684\u914d\u7f6e\u9ed8\u8ba4\u503c\u4e5f\u5728\u6b64\u5904\u5e94\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td>\u6240\u5f15\u7528\u76ee\u6807\u5b9e\u4f53\u7684 <code>FQCN</code>\u3002\u5982\u679c\u4e24\u4e2a\u7c7b\u4f4d\u4e8e\u540c\u4e00\u540d\u79f0\u7a7a\u95f4\u4e2d, \u5219\u53ef\u4ee5\u4e3a\u975e\u9650\u5b9a\u7c7b\u540d\u3002<b>\u91cd\u8981\u8bf4\u660e</b>: \u6ca1\u6709\u524d\u7f6e\u53cd\u659c\u6760!</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>cascade</code></b></td><td>\u5c42\u53e0\u9009\u9879\u3002</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td><code>LAZY</code> \u6216 <code>EAGER</code> \u4e4b\u4e00\u3002</td></tr><tr><td valign="top"><b><code>orphanRemoval</code></b></td><td>\u6307\u5b9a\u662f\u5426\u4e3a\u65e0\u7236\u7ea7\u5bf9\u8c61\u7684\u5e03\u5c14\u503c, \u672a\u8fde\u63a5\u5230\u4efb\u4f55\u5c5e\u4e3b\u5b9e\u4f8b\u7684\u53cd\u5411 <code>OneToOne</code> \u5b9e\u4f53, \u5e94\u5f53\u7531 <code>Doctrine</code> \u5220\u9664\u3002\u9ed8\u8ba4\u503c\u4e3a <code>false</code>\u3002</td></tr><tr><td valign="top"><b><code>inversedBy</code></b></td><td><code>inversedBy</code> \u5c5e\u6027\u6307\u5b9a\u4f5c\u4e3a\u5173\u7cfb\u53cd\u5411\u7aef\u7684\u5b9e\u4f53\u4e2d\u7684 \ufb01eld\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @OneToOne(targetEntity="Customer")\n\ * @JoinColumn(name="customer_id", referencedColumnName="id")\n\ */\nprivate $customer;\n</code></pre>
    6.62 -OneToManyTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@OneToMany</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>targetEntity</code></b></td><td>\u6240\u5f15\u7528\u76ee\u6807\u5b9e\u4f53\u7684 <code>FQCN</code>\u3002\u5982\u679c\u4e24\u4e2a\u7c7b\u4f4d\u4e8e\u540c\u4e00\u540d\u79f0\u7a7a\u95f4\u4e2d, \u5219\u53ef\u4ee5\u4e3a\u975e\u9650\u5b9a\u7c7b\u540d\u3002<b>\u91cd\u8981\u8bf4\u660e</b>: \u6ca1\u6709\u524d\u7f6e\u53cd\u659c\u6760!</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>cascade</code></b></td><td>\u5c42\u53e0\u9009\u9879\u3002</td></tr><tr><td valign="top"><b><code>orphanRemoval</code></b></td><td>\u6307\u5b9a\u662f\u5426\u4e3a\u65e0\u7236\u7ea7\u5bf9\u8c61\u7684\u5e03\u5c14\u503c, \u672a\u8fde\u63a5\u5230\u4efb\u4f55\u5c5e\u4e3b\u5b9e\u4f8b\u7684 <code>OneToOne</code> \u5b9e\u4f53, \u5e94\u5f53\u7531 <code>Doctrine</code> \u5220\u9664\u3002\u9ed8\u8ba4\u503c\u4e3a <code>false</code>\u3002</td></tr><tr><td valign="top"><b><code>mappedBy</code></b></td><td>\u6b64\u9009\u9879\u6307\u5b9a\u4f5c\u4e3a\u6b64\u5173\u7cfb\u5c5e\u4e3b\u7aef\u7684 <code>targetEntity</code> \u4e0a\u7684\u5c5e\u6027\u540d\u3002\u6b64\u5c5e\u6027\u662f\u5173\u7cfb\u53cd\u5411\u7aef\u7684\u5fc5\u9700\u5c5e\u6027\u3002</td></tr><tr><td valign="top"><b><code>fetch</code></b></td><td><code>LAZY</code>, <code>EXTRA_LAZY</code> \u6216 <code>EAGER</code> \u4e4b\u4e00\u3002</td></tr><tr><td valign="top"><b><code>indexBy</code></b></td><td>\u6309\u76ee\u6807\u5b9e\u4f53\u4e0a\u7684\u5b57\u6bb5\u4e3a\u96c6\u5408\u5efa\u7acb\u7d22\u5f15\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @OneToMany(targetEntity="Phonenumber", mappedBy="user", cascade={"persist", "remove", "merge"}, orphanRemoval=true)\n\ */\npublic $phonenumbers;\n</code></pre>
    6.63 -OrderByTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@OrderBy</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u53ef\u4f7f\u7528 <code>@ManyToMany</code> \u6216 <code>@OneToMany</code> \u6807\u6ce8\u6307\u5b9a\u7684\u53ef\u9009\u6807\u6ce8, \u7528\u4e8e\u6307\u5b9a\u5e94\u8be5\u6309\u4ec0\u4e48\u6761\u4ef6, \u4f7f\u7528 <code>ORDER BY</code> \u5b50\u53e5\u4ece\u6570\u636e\u5e93\u68c0\u7d22\u96c6\u5408\u3002</p><p>\u6b64\u6807\u6ce8\u9700\u8981\u5355\u4e2a\u975e\u5c5e\u6027\u503c\u4ee5\u53ca <code>DQL</code> \u7247\u6bb5:</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @ManyToMany(targetEntity="Group")\n\ * @OrderBy({"name" = "ASC"})\n\ */\nprivate $groups;\n</code></pre>\n<p><code>OrderBy</code> \u4e2d\u7684 <code>DQL</code> \u7247\u6bb5\u53ea\u5141\u8bb8\u7531\u975e\u9650\u5b9a, \u4e0d\u5e26\u5f15\u53f7\u7684\u5b57\u6bb5\u540d\u548c\u53ef\u9009\u7684 <code>ASC</code>/<code>DESC</code> \u4f4d\u7f6e\u8bed\u53e5\u7ec4\u6210\u3002\u4f7f\u7528\u9017\u53f7 (,) \u5206\u9694\u591a\u4e2a\u5b57\u6bb5\u3002\u5f15\u7528\u7684\u5b57\u6bb5\u540d\u5fc5\u987b\u5b58\u5728\u4e8e <code>@ManyToMany</code> \u6216 <code>@OneToMany</code> \u6807\u6ce8\u7684 <code>targetEntity</code> \u7c7b\u4e0a\u3002</p>
    6.64 -PostLoadTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostLoad</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u5b9e\u4f53\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PostLoad</code> \u4e8b\u4ef6\u8c03\u7528\u3002\u53ea\u80fd\u7528\u4e8e\u5b9e\u4f53\u7c7b <code>PHP</code> <code>DocBlock</code> \u4e2d\u7684 <code>@HasLifecycleCallbacks</code>\u3002</p>
    6.65 -PostPersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostPersist</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u5b9e\u4f53\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PostPersist</code> \u4e8b\u4ef6\u8c03\u7528\u3002\u53ea\u80fd\u7528\u4e8e\u5b9e\u4f53\u7c7b <code>PHP</code> <code>DocBlock</code> \u4e2d\u7684 <code>@HasLifecycleCallbacks</code>\u3002</p>
    6.66 -PostRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostRemove</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u5b9e\u4f53\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PostRemove</code> \u4e8b\u4ef6\u8c03\u7528\u3002\u53ea\u80fd\u7528\u4e8e\u5b9e\u4f53\u7c7b <code>PHP</code> <code>DocBlock</code> \u4e2d\u7684 <code>@HasLifecycleCallbacks</code>\u3002</p>
    6.67 -PostUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PostUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u5b9e\u4f53\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PostUpdate</code> \u4e8b\u4ef6\u8c03\u7528\u3002\u53ea\u80fd\u7528\u4e8e\u5b9e\u4f53\u7c7b <code>PHP</code> <code>DocBlock</code> \u4e2d\u7684 <code>@HasLifecycleCallbacks</code>\u3002</p>
    6.68 -PrePersistTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PrePersist</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u5b9e\u4f53\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PrePersist</code> \u4e8b\u4ef6\u8c03\u7528\u3002\u53ea\u80fd\u7528\u4e8e\u5b9e\u4f53\u7c7b <code>PHP</code> <code>DocBlock</code> \u4e2d\u7684 <code>@HasLifecycleCallbacks</code>\u3002</p>
    6.69 -PreRemoveTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreRemove</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u5b9e\u4f53\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PreRemove</code> \u4e8b\u4ef6\u8c03\u7528\u3002\u53ea\u80fd\u7528\u4e8e\u5b9e\u4f53\u7c7b <code>PHP</code> <code>DocBlock</code> \u4e2d\u7684 <code>@HasLifecycleCallbacks</code>\u3002</p>
    6.70 -PreUpdateTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@PreUpdate</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u5b9e\u4f53\u4e0a\u7684\u65b9\u6cd5\u6807\u8bb0\u4e3a\u4f5c\u4e3a <code>@PreUpdate</code> \u4e8b\u4ef6\u8c03\u7528\u3002\u53ea\u80fd\u7528\u4e8e\u5b9e\u4f53\u7c7b <code>PHP</code> <code>DocBlock</code> \u4e2d\u7684 <code>@HasLifecycleCallbacks</code>\u3002</p>
    6.71 -SequenceGeneratorTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@SequenceGenerator</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u6b64\u6807\u6ce8\u7528\u4e8e <code>@generatedValue(strategy="SEQUENCE")</code>, \u53ef\u4ee5\u6307\u5b9a\u6709\u5173\u5e8f\u5217\u7684\u8be6\u7ec6\u4fe1\u606f, \u4f8b\u5982\u5e8f\u5217\u7684\u589e\u91cf\u5927\u5c0f\u548c\u521d\u59cb\u503c\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>sequenceName</code></b></td><td>\u5e8f\u5217\u7684\u540d\u79f0\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>allocationSize</code></b></td><td>\u5728\u83b7\u53d6\u8be5\u5c5e\u6027\u540e, \u53ef\u6309\u5206\u914d\u5927\u5c0f\u589e\u5927\u5e8f\u5217\u3002\u5728\u4e3a\u6bcf\u4e2a\u8bf7\u6c42\u521b\u5efa\u591a\u4e2a\u65b0\u5b9e\u4f53\u65f6, \u53ef\u4ee5\u4f7f\u7528\u5927\u4e8e 1 \u7684\u503c\u6765\u4f18\u5316\u65b9\u6848\u3002\u9ed8\u8ba4\u503c\u4e3a 10</code>\u3002</td></tr><tr><td valign="top"><b><code>initialValue</code></b></td><td>\u5e8f\u5217\u7684\u8d77\u59cb\u4f4d\u7f6e, \u9ed8\u8ba4\u4e3a <code>1</code>\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @Id\n\ * @GeneratedValue(strategy="SEQUENCE")\n\ * @Column(type="integer")\n\ * @SequenceGenerator(sequenceName="tablename_seq", initialValue=1, allocationSize=100)\n\ */\nprotected $id = null;\n</code></pre>
    6.72 -TableTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Table</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u8be5\u6807\u6ce8\u63cf\u8ff0\u5728\u5176\u4e2d\u4fdd\u5b58\u5b9e\u4f53\u7684\u8868\u3002\u8be5\u6807\u6ce8\u662f\u53ef\u9009\u7684, \u653e\u5728\u5b9e\u4f53\u7c7b <code>PHP</code> <code>DocBlock</code> \u4e0a\u3002\u5982\u679c\u672a\u6307\u5b9a\u8be5\u6807\u6ce8, \u5219\u8868\u540d\u9ed8\u8ba4\u4e3a\u5b9e\u4f53\u7684\u975e\u9650\u5b9a\u7c7b\u540d\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u8868\u7684\u540d\u79f0\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u53ef\u9009\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>indexes</code></b></td><td><code>@Index</code> \u6807\u6ce8\u7684\u6570\u7ec4\u3002</td></tr><tr><td valign="top"><b><code>uniqueConstraints</code></b></td><td><code>@UniqueConstraint</code> \u6807\u6ce8\u7684\u6570\u7ec4\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @Table(name="user",\n\ *      uniqueConstraints={@UniqueConstraint(name="user_unique",columns={"username"})},\n\ *      indexes={@Index(name="user_idx", columns={"email"})}\n\ * )\n\ */\nclass User {\n}\n</code></pre>
    6.73 -UniqueConstraintTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@UniqueConstraint</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u8be5\u6807\u6ce8\u5728\u5b9e\u4f53\u7c7b\u7ea7\u522b\u7684 <code>@Table</code> \u6807\u6ce8\u5185\u4f7f\u7528\u3002\u5b83\u7528\u4e8e\u63d0\u793a <code>SchemaTool</code> \u5728\u6307\u5b9a\u8868\u5217\u4e0a\u751f\u6210\u6570\u636e\u5e93\u552f\u4e00\u7ea6\u675f\u3002\u5b83\u53ea\u6709\u5728 <code>SchemaTool</code> \u65b9\u6848\u751f\u6210\u4e0a\u4e0b\u6587\u4e2d\u624d\u6709\u610f\u4e49\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u5fc5\u9700\u5c5e\u6027</p><table border="0"><tr><td valign="top"><b><code>name</code></b></td><td>\u7d22\u5f15\u7684\u540d\u79f0\u3002</td></tr><tr><td valign="top"><b><code>columns</code></b></td><td>\u5217\u7684\u6570\u7ec4\u3002</td></tr></table>\n<p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @Entity\n\ * @Table(name="ecommerce_products",uniqueConstraints={@UniqueConstraint(name="search_idx", columns={"name", "email"})})\n\ */\nclass ECommerceProduct {\n}\n</code></pre>
    6.74 -VersionTag.documentation=<p style="font-weight: bold; font-size: 1.2em">@Version</p><p style="font-weight: bold; font-size: 1.1em">\u8bf4\u660e</p><p>\u5c06\u6307\u5b9a\u5217\u5b9a\u4e49\u4e3a\u4e50\u89c2\u9501\u5b9a\u65b9\u6848\u4e2d\u4f7f\u7528\u7684\u7248\u672c\u5c5e\u6027\u7684\u6807\u8bb0\u6807\u6ce8\u3002\u5b83\u4ec5\u7528\u4e8e\u7c7b\u578b\u4e3a <code>integer<code> \u6216 <code>datetime</code> \u7684 <code>@Column</code> \u6807\u6ce8\u3002\u4e0d\u652f\u6301 <code>@Version</code> \u4e0e <code>@Id</code> \u7ec4\u5408\u4f7f\u7528\u3002</p><p style="font-weight: bold; font-size: 1.1em">\u793a\u4f8b</p><pre><code>/**\n\ * @column(type="integer")\n\ * @version\n\ */\nprotected $version;\n</code></pre>
    6.75 -