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

JPA:带有@ManyTomany和@ManyToOne的字段

越飞语
2023-03-14

在JPA中,实体的字段是否可能同时具有@ManyTomany和@ManyToOne注释?

这是我的桌子:

Table1
   - String id (pk)
   - ...

Table2
   - ...
   - String object_id (fk Table1.id)

Table3
   - ...
   - String object_id (fk Table1.id)

这是我的实体(简化的ofc):

Entity1 {
    private Entity1PrimaryKey pk;
}

Entity2 {
    private Entity1 entity1;
}

Entity3 {
    private Entity1 entity1;
}

我会尽力解释:

>

  • @ManyToOne:Entity2和Entity3都有一个引用Entity1的字段。所以有一个多对一的关系。

    所以有了这个,我想我必须使用@ManyTomany。但我发现了一些错误。

    所以我想知道:这有可能把@ManyTomany和@ManyToOne放在一个实体的同一个字段上吗?

  • 共有1个答案

    黎征
    2023-03-14

    这样不行吗?

    SELECT t2.fieldFromTable2, t3.fieldFromTable3
    FROM Table2 t2, Table3 t3
    WHERE t2.entity1 = t3.entity1;
    
     类似资料:
    • 我试图理解javax.persistence注释@onetoone、@manytoone和@manytomany。这些注释的描述提到了。具体来说: [@OneToOne]:如果关系是双向的,则非拥有方必须使用OneToOne注释的mappedBy元素来指定拥有方的关系字段或属性。 [@manytoone]:如果关系是双向的,那么非所有者OneToMany实体端必须使用mappedBy元素来指定作为

    • 为了使问题变得简单,让我们假设我有一个具有三个属性的用户实体:id、email和一组角色(owner、@manytomany、@jointable)。我将合并至少具有一个或多个角色用户实体,而不通过EntityManager查找它: 数据库中的结果是:

    • 问题内容: 我有3个表:User,Community,community_members(用于用户和社区的many2many关系)。 我使用Flask-SQLAlchemy创建此表: 现在,我想像这样向community_members添加其他字段: 现在在python shell中,我可以这样做: 创建社区: 将成员添加到社区: 好的,这可行。 但是,现在我如何获得community_membe

    • 我正在将项目的数据库管理从JDBC MySQL转换为JPA Hibernate,数据库应该保持不变。(从一个简单的Jersey API到带有Hibernate API的spring)。 有公司表、客户表和优惠券表。每个公司可以管理许多优惠券,每个客户也可以‘购买’许多优惠券。 因此,我有一个名为company_coupon的联接表和另一个名为customer_coupon的表。 当删除一个公司时,

    • 我是一个编程新手,有一个相当复杂的问题。我希望有人知道如何解决以下问题: 和科斯: 我只想要几个变量(这就是为什么我不能做全选)。我还认为我不应该用内部连接来编写广泛的查询,所以我没有这样做(它适用于大多数查询,除了列表变量)。 这是ContactRepository的相关部分: 如果有什么重要的东西我应该在这里补充,请告诉我。提前道谢! 编辑:应用程序运行时,只有当我尝试在运行时访问特定的数据时

    • 我需要对OneToOne和ManyToOne关系的几个JoinColumns设置唯一的约束,但Hibernate似乎没有找到这些列,即使我在@JoinColumn注释中正确设置了名称。这对我来说似乎很奇怪,因为相同的约束在LiquiBase中工作得很好。 在抛出的异常日志下面: