映射实体再次保存 - 问题



每当我使用 cartRepository.save(cart( 用户再次插入用户表中时?(购物车有一个字段用户(。

如何不再保存用户?

用户类:

@Entity
@Table(name="users")
public class Users {
@Id
@GeneratedValue
private int id;
@Column(name="nameofuser")
//@UniqueElements
private String nameofuser;
@Column(name="password")
private String password;
@OneToOne(mappedBy="user",cascade = {CascadeType.ALL})
Cart cart;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNameofuser() {
return nameofuser;
}
public void setNameofuser(String nameofuser) {
this.nameofuser = nameofuser;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

购物车实体:

@Entity
@Table(name="cart")
public class Cart {
@Id
@GeneratedValue
@Column(name="id")
int id;
@OneToOne(cascade = CascadeType.ALL)
Users user;

public Users getUser() {
return user;
}
public void setUser(Users user) {
this.user = user;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}

}

购物车服务类别:


package com.praful.lastTry.Services;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.praful.lastTry.MenuRepository.CartRepository;
import com.praful.lastTry.Models.Cart;
import com.praful.lastTry.Models.Users;
@Service 
public class CartService {
@Autowired CartRepository cartRepository; 
public void bindingWithUser(Users user) {
Cart cart=new Cart();
Users user1=new Users();
cart.setUser(user1);
System.out.println(" from here==================================");
cartRepository.save(cart);
System.out.println("till here ==================================");
}
}

每当我使用 cartRepository.save(cart( 用户再次插入用户表中

由于此代码:

Users user1=new Users();

每次发送新用户时。

将其更改为:

public void bindingWithUser(Users user) {
Cart cart=new Cart();
Users user1=  getUser();
cart.setUser(user1);
System.out.println(" from here==================================");
cartRepository.save(cart);
System.out.println("till here ==================================");
}
private Users getUser(){
//return logged in user or your logic to get user which is already there in Database
}

似乎在bindingWithUser函数中传递了一个User对象user但在函数内部,您正在初始化一个新的User对象user1并将其设置为cart对象,然后再保存它

最新更新