Locally I use mysql, so when I use
@Column(columnDefinition = \"TEXT\")
Unfortunately application have to run at different databases too, I\'
What about something like this:
@Lob
private String someString;
I think it's more portable and should effectively generate TEXT or LONGTEXT data type.
I had the same problem and it was resolved only adding a parameter to MySQL Url on application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/database?jdbcCompliantTruncation=false
The parameter is jdbcCompliantTruncation=false
Looks like a workaround but only it works...
Similiar Problem I was getting error while uploading an image into the mysql database, @Column(columnDefinition = “TEXT”).
You can use in postgresql as well as mysql database's.
Just I've changed to
@Lob
@Column(name=imageFiie)
private String image;
Note: When working with PostgresSQL we may, periodically, need to store a string with an arbitrary length.
For this, PostgreSQL provides three character types:
This is because the JPA specification makes use of the SQL standard. Consequently, it doesn't define a simple way to handle this type of object using, for example, a @Text annotation.
Luckily, we have a couple of possibilities for managing the TEXT data type for a PostgreSQL database:
We can use the @Lob annotation Alternatively, we can also use the @Column annotation, combined with the columnDefinition attribute
If you use @LOB you'll have ORA-00932 exception with SQL containing DISTINCT (http://ora-00932.ora-code.com/)
I think that the solution depends on the bytes size of your string. If its < 4000 bytes, you can try using @Column(name = "...", length = 4000)
I suggest 4000 bytes for DB comptibility reason :