zoukankan      html  css  js  c++  java
  • symfony中doctrine常用属性

    http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/basic-mapping.html

    1. doctrine字段属性:

    <?php
    /** @Entity */
    class Message
    {
        /** @Column(type="integer") */
        private $id;
        /** @Column(length=140) */
        private $text;
        /** @Column(type="datetime", name="posted_at") */
        private $postedAt;
    }
    • 属性id对应列id,类型为integer
    • 属性text对应列text,类型默认为string
    • 属性postedAt对应列posted_at,类型为datatime
    • type:(默认为‘string’)类型
    • name:(默认为字段名称)数据库列名
    • length(默认为‘255’)数据库中列值的长度(仅适用于使用string类型的列)
    • unique(默认为‘false’)列值是否唯一
    • nullable:(默认为‘false’)列是否可为空
    • precision:(默认为0)数字的精确值,值存储的最大位数,仅适用于十进制
    • scale:(默认为0)数字的长度,仅适用于十进制,表示小数点右侧的位数,不能大于precision值。
    • columnDefinition:允许用户定义用于创建列的自定义DDL代码段。注意:这通常会使SchemaTool混淆,以总是检测该列为已更改。
    • option:生成DDL语句时传递给底层数据库平台的键值对选项。
      • default:如果没有提供值,则为列设置的默认值。
      • unsigned:布尔值来确定列是否只能表示非负整数(仅适用于整数列,可能不被所有vendors支持)。
      • fixed:布尔值来确定字符串列的指定长度是否应该是固定的或变化的(仅适用于字符串/二进制列,并且可能不被所有vendors支持)。
      • comment:注释,可能不被所有vendors支持
      • check:向列添加检查约束类型(可能不被所有vendors支持)。

    2. doctrine字段类型:

    doctrine SQL php
    string VARCHAR string
    integer INT integer
    smallint SMALLINT integer
    bigint BIGINT string
    boolean boolean or equivalent (TINYINT) boolean
    decimal DECIMAL string
    date DATETIME DateTime object
    time TIME DateTime object
    datetime DATETIME/TIMESTAMP DateTime object
    datetimetz DATETIME/TIMESTAMP DateTime object with timezone
    text CLOB string
    object CLOB object using   serialize()  and  unserialize()  
    array CLOB array using  serialize() and unserialize() 
    simple_array CLOB array using   implode()  and  explode() ,使用逗号当分隔符,(注意)仅当值中不包含“,”时方可使用
    json_array CLOB array using  json_encode()  and  json_decode() 
    float Float (Double Precision) double,(注意)仅适用于使用小数点作为分隔符的区域设置
    guid GUID/UUID string,默认为varchar,但如果平台支持,则使用特定类型。
    blob BLOB resource stream

    3. 主键(标识键)

    可以使用 @Id 注释作为标识符的字段。同时可以使用自动生成器 @GeneratedValue 。

    <?php
    class Message
    {
        /**
         * @Id @Column(type="integer")
         * @GeneratedValue
         */
        private $id;
        //...
    }

    3.1 标识键生成策略

    • AUTO:(默认),使用数据库优先策略,具有良好的可移植性
    • SEQUENCE:使用数据库序列来生成ID。目前没有提供完整的可移植性。
    • IDENTITY:在数据库中使用特殊身份列,以生成插入行的值。这个策略目前没有提供完整的可移植性,由以下平台支持:MySQL / SQLite / SQL Anywhere(AUTO_INCREMENT),MSSQL(IDENTITY)和PostgreSQL(SERIAL)。
    • UUID:使用内置的通用唯一标识键生成器。这一策略提供了完整的可移植性。
    • TABLE:使用单独的表来生成ID。这一策略提供了完整的可移植性。 注意:此策略尚未实施!
    • NONE:标识符由代码分配(并由此生成)。必须在新实体传递给 EntityManager#persist 之前进行分配。NONE相当于完全不使用 @GeneratedValue 。
    • CUSTOM:可以使用 @CustomIdGenerator 注释,允许通过自己的类生成标识键。
  • 相关阅读:
    如何选择一款程序员理想中的显示器
    群英论道聚北京,共话PostgreSQL
    中国人民大学教授杜小勇:One Size Does not Fit All?
    4个技巧,教你如何用excel绘制出高大上的图表
    容易被误读的IOSTAT
    【Android Studio安装部署系列】四、Android SDK目录和作用分析
    【Android Studio安装部署系列】四、Android SDK目录和作用分析
    【Android Studio安装部署系列】四、Android SDK目录和作用分析
    【Android Studio安装部署系列】四、Android SDK目录和作用分析
    Java框架 面试题总结
  • 原文地址:https://www.cnblogs.com/chaoxiZ/p/6807626.html
Copyright © 2011-2022 走看看