gpt4 book ai didi

java - 可以在双向关系中创建两列吗?

转载 作者:行者123 更新时间:2023-11-29 07:25:15 25 4
gpt4 key购买 nike

是否可以为双向关系创建一列?

我的实体:

@Entity
@Table(name = "subscription")
@Proxy(lazy = false)
public class Subscription {

@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "subscription_id")
private long id;

@Column(name = "userid", nullable = false)
private String userId;

@Column(name = "saledate", nullable = false)
@Temporal(TemporalType.DATE)
private Date saleDate;

@Column(name = "finishdate", nullable = false)
@Temporal(TemporalType.DATE)
private Date finishDate;

@Column(name = "price", nullable = false)
private long price;

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


@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "subscription")
private List<VisitDate> visitDates = new ArrayList<>();
}



@Entity
@Table(name="visitdate")

public class VisitDate {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "id")
private long id;
private long subscription;

@Column(name = "date", nullable = false)
@Temporal(TemporalType.DATE)
private Date date;
@ManyToOne
@JoinColumn(name="subscription_id")
private Subscription associatedSub;
}

现在我在数据库中看到两列,有点困惑。

我不想保存相同的数据,而是想显示某天有多少用户访问的报告。

更新:

enter image description here

最佳答案

您不需要在 VisitDate 类中创建单独的字段“订阅”。 Hibernate 会自动创建一个字段来存储订阅 ID。代码需要稍微改动一下。

@Entity
@Table(name = "subscription")
public class Subscription {

@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name = "subscription_id")
private long id;

@Column(name = "userid", nullable = false)
private String userId;

@Column(name = "saledate", nullable = false)
@Temporal(TemporalType.DATE)
private Date saleDate;

@Column(name = "finishdate", nullable = false)
@Temporal(TemporalType.DATE)
private Date finishDate;

@Column(name = "price", nullable = false)
private long price;

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

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "associatedSub")
private List<VisitDate> visitDates = new ArrayList<>();
}

请注意,我已将 mappedBy 属性更改为指向上述类中的 associatedSub。

@Entity
@Table(name="visitdate")

public class VisitDate {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name = "id")
private long id;

@Column(name = "date", nullable = false)
@Temporal(TemporalType.DATE)
private Date date;

@ManyToOne
@JoinColumn(name="subscription_id")
private Subscription associatedSub;
}

关于java - 可以在双向关系中创建两列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54512278/

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