首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用@Relate和唯一的

使用@Relate和唯一的
EN

Stack Overflow用户
提问于 2019-06-06 14:23:05
回答 1查看 100关注 0票数 0

如何使用相关和独特的导水管ORM?

在我的代码中,我希望userapp是唯一的?如果我尝试放置@Column(unique: true),就会收到如下错误:

*“_Professional”上的关系“userapp”不能同时包含“列”和“关联”元数据。若要向关系添加用于索引或空值的标志,请参阅“Relate”的构造函数。

我的代码如下:

代码语言:javascript
复制
class Professional extends ManagedObject<_Professional> implements _Professional {}

class _Professional {

  @primaryKey
  int id;
  @Relate(#professionals)
  Userapp userapp;
  @Column(defaultValue: 'true')
  bool active;  

  ManagedSet<ProfessionalSpecialty> professionalSpecialties;

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-07 15:43:32

基于userapp的外键列是否唯一取决于反向关系属性。在这种情况下,逆是Userapp.professionals

如果Userapp.professionalsProfessional类型,则向userapp添加一个唯一的约束;这是一个“有-一”的关系。

如果Userapp.professionalsManagedSet<Professional>类型,则不应用唯一的约束;这是一种“有-多”的关系。

我猜是因为您使用的是复数形式(professionals),所以您要声明一个ManagedSet<Professional>。更改_Userapp表定义中的声明,并确保_Professional中的逆匹配

代码语言:javascript
复制
class _Userapp {
  ...
  Professional professional;
}
class _Professional {
  ...
  @Relate(#professional)
  Userapp userapp;

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56479598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档