我真的需要帮助。
我想从Spring Boot项目中的csv文件中读取数据,然后使用@Transactional保存到数据库中。
但是,我有2节课。
一个是角色:
import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name="roles")
public class Role {
@Id
@GeneratedValue
private Long roleID;
private String role;
@ManyToMany( mappedBy = "roles")
private Set<User> users = new HashSet<User>();
private Role(){} //
public Long getRoleID() {
return roleID;
}
public void setRoleID(Long roleID) {
this.roleID = roleID;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public Set<User> getUsers() {
return users;
}
public void setUsers(Set<User> users) {
this.users = users;
}
}
另一个是用户:
@Entity
@Table( name="users" )
public class User {
public User(){
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "userID")
private Long userID;
// @NotNull(message = "Username text are must not be empty !")
private String userUsername;
// @NotNull(message = "Name text are must not be empty !")
private String userName;
// @NotNull(message = "Surname text are must not be empty !")
private String userSurname;
// @NotNull(message = "Please choose a password")
private String password;
// @NotNull(message = "Please choose a password")
@Transient
private String passwordMatch;
// @NotNull(message = "Give adress please")
private String addres;
// @Email(message = "Please enter valid e mail.")
private String eMail;
private boolean active = false;
private String key;
@ManyToMany( cascade = CascadeType.ALL, fetch = FetchType.EAGER )
@JoinTable(
name = "users_roles",
joinColumns = {@JoinColumn(name="userID")},
inverseJoinColumns = {@JoinColumn(name="roleID")}
)
我想从csv文件中读取文件,然后将用户和角色实体都保存到数据库中。数据将如何?我无法弄清楚。
我又如何使用库或在自己的程序上读取数据?
还有一件事情,如果一个用户的数据损坏了,我不应该将数据同时保存到用户和角色数据库中。我认为可以使用@Transactional来实现吗?
有什么想法吗?我真的需要帮助谢谢你。
答案 0 :(得分:0)
答案 1 :(得分:0)
使用FlatFileItemReader读取文件或将Apache POI与ItemReader一起使用。为给定实体编写JPAItemWriter或JDBCItemWriter的时间。