我想在Postgres中使用表格名称,例如“TableName”。在 Aqueduct 中,建议的类名称为_tablename。

当我阅读manual时,我可以使用@Table(name:“TableName”),但这似乎不起作用(或者可能无法正确理解)。

有没有一种方法可以在Postgres中使用与Aqueduct中的私有(private)类名称不同的表名?

@Table(name: "UserName")
class User extends ManagedObject<_User> implements _User {
  @Serialize()
  String get fullname => '$firstname $lastname';

  @override
  void willUpdate() {
    // Add anything here to change prior to being updated.
  }

  @override
  void willInsert() {
    // Add anything here to change prior to being inserted.
  }
}

class _User {
  @primaryKey
  int id;
  @Column(nullable: false)
  String firstname;
  @Column(nullable: false)
  String lastname;
  @Column(nullable: false)
  String email;
}

最佳答案

@Table()批注必须应用于私有(private)数据类,该类在 Aqueduct 文档中被称为“表定义”类。在这种情况下,_User类:

@Table(name: "UserName")
class _User {
  @primaryKey
  int id;
  @Column(nullable: false)
  String firstname;
  @Column(nullable: false)
  String lastname;
  @Column(nullable: false)
  String email;
}

这是Table类上api文档的链接。

关于postgresql - 如何在Aqueduct和Postgres中具有不同的表名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59798480/

10-11 19:23