你可以用自己場上的@Lob
註釋,這將產生對MySQL的類型longtext
和PostgreSQL類型text
:在MySQL
package models;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
@Entity
public class Foo {
@Id
public Long id;
@Lob
public String bar;
}
這產生了:
mysql> describe foo;
+-------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+----------------+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| bar | longtext | YES | | NULL | |
+-------+------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
在PostgreSQL的這種收益率
:
foodb=> \d foo;
Table "public.foo"
Column | Type | Modifiers
--------+--------+-----------
id | bigint | not null
bar | text |
Indexes:
"pk_foo" PRIMARY KEY, btree (id)
按照Java EE api:
將LOB類型從這意味着String
類型的字段應該給你一些文本BLOB和類型的字段持久字段或屬性
的類型推斷byte[]
應該給你一些二進制blob。
這對於Oracle來說是不正確的。另一種方法是「Clob」 – ludwigm