【问题标题】:How to specify VARCHAR column length in custom data persister?如何在自定义数据持久化器中指定 VARCHAR 列长度?
【发布时间】:2018-08-06 17:15:20
【问题描述】:

我有一个自定义持久化器,它将 ZonedDateTimes 作为字符串存储在我的数据库中。 OrmLite 正在生成列定义VARCHAR(0),这在 PostgreSQL 中是无效的。

我需要指定一个长度,但我不确定最好的方法。

我知道我可以做类似的事情

    @DatabaseField(columnName = "my_column",
                   persisterClass = MyCustomPersister.class,
                   columnDefinition = "VARCHAR(17)")

但我必须为具有此数据类型的字段的每个声明执行此操作。这意味着使用 DatabaseField(persisterClass=MyCustomPersister.class) 注释的每个字段在 SQL 中应该始终是长度为 17 的 VARCHAR

有没有办法在数据持久化器中解决这个问题?

【问题讨论】:

  • 这个不清楚“我必须为每个声明这个数据类型的字段做这个”如果你想指定一个长度,你希望怎么做除此以外?声明“所有 varchars 的长度都为 17”是毫无意义的。您需要在每个 varchar 列上声明显式长度。
  • @JimGarrison 我的意思是每个用 DatabaseField(persisterClass=MyCustomPersister.class) 注释的字段都应该是长度为 17 的 VARCHAR

标签: ormlite


【解决方案1】:

只需覆盖数据持久化器中的方法int getDefaultWidth();就足够了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    相关资源
    最近更新 更多