当前位置: 首页 > 知识库问答 >
问题:

如何在Play中使用eBean定义“TEXT”类型!框架?

陈渊
2023-03-14

当我在模型类中将变量定义为字符串时,它在DB中被转换为“VARCHAR(255)”。

但是,我想保存超过255个,因为这个数据是由几个段落组成的非常长的文本。

据我所知,DB中有一种TEXT类型来保存很长的文本。

如何在Play中定义TEXT类型!框架?

我尝试了约束。MaxLength和约束。游戏中定义的最大值!框架api。

然而,仍然是1。sql文件(由Ebean DDL自动创建)将此变量定义为VARCHAR(255)。

谢谢,提前!

共有2个答案

邢起运
2023-03-14

您可以在字段上使用@Lob注释,这将在MySQL上生成long text类型,并在PostgreSQL上键入text

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中,这会产生:

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类型是从持久字段或属性的类型推断出来的

这意味着一个字符串类型的字段应该给你一些文本blob,而字节类型的字段应该给你一些二进制blob。

邓韬
2023-03-14

在您的模型中,只需使用设置为文本的列定义:

@Entity
public class MyEntity extends Model {

    @Id
    private Long id;

    @Column(columnDefinition = "TEXT")
    private String aLongText;
    ....

}

我已经在Postgres上使用过了,不知道其他数据库服务器是否可以。

 类似资料:
  • 我使用play框架创建了web应用程序。我正在尝试使用Play Ebean遵循这篇指南Java EBean-2.6.x-Play框架。因此,我将复制到plugins.sbt中,并修改了build.sbt 但在运行sbt时,它表示无法解析依赖项。 在阅读了很少其他stackoverflow发布链接1和链接2后,似乎是由于不匹配的版本。我尝试使用sbt-play-ebean 6.1.0,但没有效果。第

  • 我正在尝试使用PlayJava模板创建小型CRUD应用程序。我通过cmd使用typesafeactivator创建了一个新项目,所以现在我想启用ebean并更改mysql数据库。im使用激活器1.3。6,对于使用我的phpmyadmin sql 5.6的sql im。20我在谷歌上搜索了一下,我做了所有的事情,比如纪录片,但我仍然无法解决我的问题我无法添加ebean我的项目,我无法连接mysql连

  • 问题内容: 我有一堂课: 我想在“ JPA”专栏中使用它: 这就是Hibernate所说的: 如何使其了解我的自定义类型。我认为这很简单,但是在文档中找不到。 问题答案: 好吧,有很多方法: 用注释类,并具有: private Email email; 声明自定义值类型-参见此处(使用)

  • 问题是我写了简单的注释处理器,它根本不处理类型注释。simple annotations processor的源代码如下所示: 有什么想法如何使用或如何通过SimpleAnnotationsProcessor访问类型注释吗?使用可插入的注释处理API对我来说是不必要的,我认为它会比Java反射有更好的性能。无论如何,我也不知道如何通过Java反射访问类型注释。

  • 问题内容: 我想将非spring bean类对象用作球衣Web服务类方法的参数。但是它在构建时会给出缺少的依赖项错误。 我的代码是: 问题答案: 关键是路径参数以字符串形式出现。根据规范,如果我们希望将自定义类型作为注入,则自定义类应具有以下三项之一: 返回类型的公共静态 返回类型的公共静态 或接受字符串的公共构造函数 另一种选择实现。您可以在此处查看示例。 如果您不拥有该类(它是无法更改的第三方