gpt4 book ai didi

java - @ManyToMany 额外列

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:04:20 26 4
gpt4 key购买 nike

我需要为客户促销之间的关系建模。我们需要有关客户促销得分 CLIENTS_PROMOTIONS_HISTORY 和当前得分 CLIENTS_PROMOTIONS

的历史记录

数据库建模很好,但我发现对实体建模太难了。我打算将 CLIENTS_PROMOTIONS 表仅用于关系目的,以便客户可以了解他们的促销 Activity + 每个促销 Activity 的当前分数。但无法弄清楚当前分数的存储位置。

实体和图表:

@Entity
@Table(name = "CLIENTS")
@SecondaryTable(name = "CLIENTS_PROMOTIONS",
pkJoinColumns = @PrimaryKeyJoinColumn(name = "ID_CLIENT"))
class Client {

@Id
@Column(name = "ID_CLIENT", nullable = false, unique = true)
Long id;

@OneToOne(cascade = CascadeType.ALL, optional = false)
@JoinColumn(name = "ID_USER", nullable = false, unique = true)
User user;

@Column(name = "NAME", nullable = false)
String name;

@Column(name = "BIRTHDAY", nullable = false)
Date birthday;

@Column(name = "EMAIL", nullable = false)
String email;

@Column(name = "SEX", nullable = false)
Character sex;

@ManyToMany
@JoinTable(name = "CLIENTS_PROMOTIONS",
joinColumns = @JoinColumn(name = "ID_CLIENT"),
inverseJoinColumns = @JoinColumn(name = "ID_PROMOTION"))
Set<Promotion> promotions;
}

-

@Entity
@Table(name = "PROMOTIONS")
class Promotion {

@Id
@Column(name = "ID_PROMOTION", nullable = false, unique = true)
Long id;

@Column(name = "ID_ESTABLISHMENT", nullable = false)
Long establishmentId;

@Column(name = "TITLE", nullable = false)
String title;

@Column(name = "LIMIT_SCORE", nullable = false)
Long limitScore;

@Column(name = "DESCRIPTION", nullable = false)
String description;

@Column(name = "REWARD", nullable = false)
String reward;
}

my eer diagram

最佳答案

您需要为 Client_Promotions 创建一个 Entity 并为该 Entity 建模 @ManyToOne 关系PromotionClient 实体,而不是 @ManyToMany

关于java - @ManyToMany 额外列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23851558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com