1
我有两个表这些是User和UserDetails。如何使用Spring引导保存多个表JpaRepository
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String userName;
private String password;
}
@Entity
public class UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String firstName;
private String lastName;
private String address;
private Date birthday;
@ManyToOne
private User user;
}
有没有显示getter和setter。
我使用弹簧引导来创建我的应用程序。当我去保存User
时,我想同时保存这两个表。这意味着首先保存User
表,然后我保存UserDetails
表(保存UserDetails
表,User
表主键是必需的)。我如何使用spring启动JPA存储库来做这件事?另一件事,如果UserDetails
表未保存,我们想要回滚我们的整个事务(这意味着我们必须回滚用户表)。
这是我的服务
类@Service
@Transactional
public class UserDetailsService {
@Autowired
private UserDetailsRepository userDetailsRepository;
@Autowired
private UserRepository userRepository;
void saveUserDetails(String userName, String password, String firstName, String lastName,
String address, Date birthday) {
User n = new User();
n.setUserName(userName);
n.setPassword(password);
UserDetails ud = new UserDetails();
ud.setFirstName(firstName);
ud.setlastName(lastName);
ud.setAddress(address);
ud.setBirthDate(birthday);
userRepository.save(n);
userDetailsRepository.save(ud);
}
}
感谢您的回答。当我去保存'userDetails'表我想'用户'表ID。但我如何获得用户ID。有两个表要保存相同的事务。 –
您是否尝试过我的方法? – sunkuet02
是的,但它不工作。我想我在服务课内犯错。但我找不到它。我把我的服务班放在上面(以下问题) –