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 注释,允许通过自己的类生成标识键。
symfony中doctrine常用属性的更多相关文章
- DataGrid中的常用属性
DataGrid中的常用属性 $('#dg').datagrid({ url:'datagrid_data.json', columns:[[ {field:'code',title:'Code',w ...
- JavaScript中Number常用属性和方法
title: JavaScript中Number常用属性和方法 toc: false date: 2018-10-13 12:31:42 Number.MAX_VALUE--1.79769313486 ...
- 面向对象中Object常用属性总结
学完Object属性,自己总结一些常用是Object常用属性. Object.prototype:属性表示Object的原型对象. 属性: Object.prototype.constructor:特 ...
- Android 中 GridView 常用属性合集
GridView的一些常用属性: android:numColumns=”auto_fit” //GridView的列数设置为自动 android:columnWidth=”90dp " / ...
- C#中gridView常用属性和技巧介绍
.隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; .得到当前选定记录某字段的值 sValue=Table.Rows[gridV ...
- DEV中gridview常用属性的设置
1.隐藏最上面的GroupPanel: gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值: sValue=Table.Rows[g ...
- DEV中gridview常用属性
1.隐藏最上面的GroupPanel: gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值: sValue=Table.Rows[g ...
- javascript中array常用属性方法
属性: length 表示一个无符号 32-bit 整数,返回一个数组中的元素个数. 截短数组..截短至长度2 则: .length = 2 方法: Array.from() 方法可以将一个类数 ...
- CSS中的常用属性
一 CSS文字属性:color : #999999; /*文字颜色*/font-family : 宋体,sans-serif; /*文字字体*/font-size : 9pt; /*文字大小*/fon ...
随机推荐
- js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可)
js进阶ajax读取json数据(ajax读取json和读取普通文本,和获取服务器返回数据(链接)都是一样的,在url处放上json文件的地址即可) 一.总结 ajax读取json和读取普通文本,和获 ...
- win-server下定时备份oracle数据库实现方法
1.在e盘建立一个“oracle_backup”的文件夹,文件夹下再建两个文件夹分别为:“new”,“old”,然后在oracle_backup文件夹中新建一个bat文件,取名“expdb.bat”, ...
- [乐意黎原创] eclipse Kepler Selected SVN connector library is not available or cannot be loaded
问题描写叙述:已经安装了subversive,可是在从SCM导入maven项目时.还是提示报错(如标题),依据报错原因发如今Team>SVN中确实没有svn连接器. 折腾了半天, 硬是没有结果. ...
- [Recompose] Add Lifecycle Hooks to a Functional Stateless Component using Recompose
Learn how to use the 'lifecycle' higher-order component to conveniently use hooks without using a cl ...
- [Now] Deploy a Node project with Zeit’s Now
Use Zeit’s now to deploy a node application from your local machine to a remote cloud service in mom ...
- 【转载】 Searching过程粗略梳理 分类: H4_SOLR/LUCENCE 2014-07-25 22:59 316人阅读 评论(0) 收藏
转载自:http://www.cnblogs.com/huangfox/archive/2012/02/09/2344686.html solr-searching过程分析(一) --searchin ...
- 百度UEditor图片上传、SpringMVC、Freemarker、Tomcat、Nginx、静态资源
个人官网.公司项目都需要 可视化编辑器,百度UEditor做得很不错,就用的这个.项目后台用到了SpringMVC.Freemarker,开发过程中部署在Jetty,线上部署用Tomcat,最后可能配 ...
- 【p081】ISBN号码
Time Limit: 1 second Memory Limit: 50 MB [问题描述] 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定 ...
- [React] Public Class Fields with React Components
Public Class Fields allow you to add instance properties to the class definition with the assignment ...
- C++ 计算任意两个日期之间的天数
C++写的一个计算两个日期之间天数的小程序: #include <Windows.h> #include <stdio.h> struct tagDate { int year ...