使用SpringMVC在java中填充表
我有三个实体:使用SpringMVC在java中填充表,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有三个实体:账户,合作伙伴,和推荐 合作伙伴表已满,并且有到帐户表的链接 注册用户时,填写帐户表 然后我需要填写推荐表,其中有到帐户和合作伙伴的链接 在这种情况下,我需要检查请求中是否有参考链接,我需要检查它是否在合作伙伴表中,并写入合作伙伴的ID参考表。还可以从表帐户中获取ID,并将其写入参考表 我有实体和控制器 @Entity @Table(name = "partner") public class Partner implements Serializable { @Id @Colu
账户
,合作伙伴
,和推荐
合作伙伴
表已满,并且有到帐户
表的链接
注册用户时,填写帐户
表
然后我需要填写推荐
表,其中有到帐户
和合作伙伴
的链接
在这种情况下,我需要检查请求中是否有参考
链接,我需要检查它是否在合作伙伴
表中,并写入合作伙伴
的ID参考
表。还可以从表帐户
中获取ID,并将其写入参考
表
我有实体和控制器
@Entity
@Table(name = "partner")
public class Partner implements Serializable {
@Id
@Column(name = "id", unique = true, nullable = false)
private Long id;
@OneToOne
@JoinColumn(name = "account_id")
private Account account;
@Column(name = "referral_link", nullable = false, unique = true)
@NotEmpty
private String referralLink;
Getter, Setter, and Constructor
@Entity
@Table(name = "referral")
public class Referral implements Serializable {
@Id
@Column(name = "id", unique = true, nullable = false)
private Long id;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "partner", cascade = CascadeType.ALL)
@JoinColumn(name = "partner_id")
private Set<Partner> partnerId = new HashSet<>();
@OneToOne
@JoinColumn(name = "account_id", nullable = false, unique = true)
private Account accountId;
@Column(name = "device_id")
private String deviceId;
@Column(name = "setup_date", nullable = false)
private Date setupDate;
Getter, Setter, and Constructor
@实体
@表(name=“partner”)
公共类伙伴实现可序列化{
@身份证
@列(name=“id”,unique=true,nullable=false)
私人长id;
@奥内托内
@JoinColumn(name=“account\u id”)
私人帐户;
@列(name=“reference\u link”,nullable=false,unique=true)
@空空如也
私有字符串引用链接;
Getter、Setter和构造函数
@实体
@表(name=“转诊”)
公共类引用实现了可序列化{
@身份证
@列(name=“id”,unique=true,nullable=false)
私人长id;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“partner”,cascade=CascadeType.ALL)
@JoinColumn(name=“partner\u id”)
私有集partnerId=新HashSet();
@奥内托内
@JoinColumn(name=“account\u id”,nullable=false,unique=true)
私人帐户账号;
@列(name=“device\u id”)
私有字符串设备ID;
@列(name=“setup\u date”,null=false)
私人日期;
Getter、Setter和构造函数
在控制器中,我编写了以下代码:
Long defaultId = 6L;
if (referralLink == null) {
referral = new Referral(defaultId, account.getId();
referralService.create(referral);
} else {
List<Partner> partnerList = partnerService.getAll();
if (partnerList.contains(referralLink)) {
// How to get partnerId?
referral = new Referral(partnerId, account.getId();
} else {
referral = new Referral(defaultId, account.getId();
referralService.create(referral);
}
referralService.create(referral);
}
Long defaultId=6L;
如果(referralLink==null){
转诊=新转诊(defaultId,account.getId();
推荐服务。创建(推荐);
}否则{
List partnerList=partnerService.getAll();
if(partnerList.contains(referralLink)){
//如何获取partnerId?
转诊=新转诊(partnerId,account.getId();
}否则{
转诊=新转诊(defaultId,account.getId();
推荐服务。创建(推荐);
}
推荐服务。创建(推荐);
}
许多问题都被证明是:
- 如何在
所属的工作表上获取元素的idreferralLink
- 如果
为空,如何添加默认IDreferralLink
- 创建
时,他要求我提供一个实体推荐
,而不是我的账户
和长期
合作伙伴,我做错了什么集合
- 你有很多问题
在你的Refferal班上是第一名
@OneToMany(fetch = FetchType.LAZY, mappedBy = "partner", cascade = CascadeType.ALL)
@JoinColumn(name = "partner_id")
private Set<Partner> partnerId = new HashSet<>();
所以只需删除“nullable=false”您有很多问题 在你的Refferal班上是第一名
@OneToMany(fetch = FetchType.LAZY, mappedBy = "partner", cascade = CascadeType.ALL)
@JoinColumn(name = "partner_id")
private Set<Partner> partnerId = new HashSet<>();
因此,只需删除“nullable=false”即可,这样我在关系的两侧就没有JoinColumn。从引用中,表引用合作伙伴表中的ID。这是一个双向关系,您可以从另一侧引用任何一侧谢谢,我遵照您的建议。使用“columnDefinition”设置默认值with referralLink为空并删除“nullable=false”。但是表引用中的数据仍然未写入检查我的第二个注意事项,关于将关系的每一侧引用到另一侧,因此我在关系的两侧没有JoinColumn。从引用中,表引用合作伙伴表中的ID这是一个双向关系,您可以从另一侧引用任何一侧,而不是谢谢,我听从了你的建议。使用referralLink将默认值设置为“columnDefinition”为空,并删除“nullable=false”。但是表referrion中的数据仍然没有写入检查我的第二个注释,关于对关系的每一方都有引用