How to get Doctrine TEXT type?

You are referencing not correct type in the documentation. In your code you have type="string" but your reference to documentation is related to type="object".

If you read the part of table above in the referenced docs you will see that string is casted to VARCHAR in MySQL if length does not exceed the maximum length for MySQL and is casted to MEDIUMTEXT if length exceeds.

But If you want to get explicitly TEXT field you will need to define your column with type="text" together with length. Depending on the defined length Doctrine according to documentation will generate one of these types:

+----------------------------------+-------------+
|   `length` is less or equal to   | casted type |
+----------------------------------+-------------+
| 2 ^ 8 - 1 = 255                  | TINYTEXT    |
| 2 ^ 16 - 1 = 65535               | TEXT        |
| 2 ^ 24 - 1 = 16777215            | MEDIUMTEXT  |
| 2 ^ 32 - 1 = 4294967295 or empty | LONGTEXT    |
+----------------------------------+-------------+

So to explicitly set type TEXT on MySQL you need next Annotation:

/**
 * @ORM\Column(name="notes", type="text", length=65535)
 */
protected $notes;

You need to set the length:

To TINYTEXT => length = 255
To TEXT => length = 65535
To MEDIUMTEXT = 16777215
Default: LONGTEXT

Then, for example if you need an type text, it's necessary:

/**
* @ORM\Column(name="description", type="text", length=65535)
*/