【问题标题】:JPA unique List of foreign KeysJPA 唯一外键列表
【发布时间】:2014-09-17 10:13:22
【问题描述】:

使用 Play 2.2。和 EBean,我想保留一个具有其他对象列表的对象:

public class ShoppingCart {
    @ManyToMany
    public List<Article> articles;
}

public class Article {
    public int id;
}

JPA 创建的映射关系的表如下所示(在 Postgres 中):

cart_id           | article_id
------------------+--------------
               61 |            3
               61 |            6

所以在这个例子中,商品 3 和 6 的组合只能在购物车 61 中存在一次。然而,第 3 和第 7 条仍然免费,但一旦插入也只能存在一次。

我希望每个ShoppingCart 都是唯一的,这意味着Article 的列表不能重复,所以基本上是一个唯一约束,但在多个外键上。 我如何做到这一点?

【问题讨论】:

    标签: hibernate postgresql jpa playframework unique-constraint


    【解决方案1】:

    很难理解你真正想要什么。

    如果您想要一个购物卡列表链接到多篇文章,您已经有了解决方案。

    目前状态下,第3条和第6条可以存在于很多购物车中

    cart_id           | article_id
    ------------------+--------------
                   61 |            3
                   61 |            6
                   62 |            3
                   62 |            6
    

    如果你想要的是如果一个购物车链接到一组文章,没有其他购物车可以拥有相同的一组文章,这不能仅通过sql和列约束来完成。 您必须创建 java/scala 代码来测试一组文章是否已经与购物车相关联。

    【讨论】:

    • 我正在努力实现后者。感谢您澄清这是不可能的。
    猜你喜欢
    • 2020-06-09
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    相关资源
    最近更新 更多