У меня есть база данных с 3 объектами: User, Profile и UserProfile.Когда я обновляю пользователя, у меня появляется ошибка.
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "seqUser", sequenceName = "seqUser")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqUser")
private Integer id;
private String email;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<UserProfile> userProfiles = new ArrayList<UserProfile>();
}
И
public class Profile implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="seqProfile", sequenceName ="seqProfile")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seqProfile")
private Integer id;
private String codeProfile;
private String libelleProfile;
@OneToMany(mappedBy="profile", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JsonIgnore
private List<UserProfile> userProfiles = new ArrayList<UserProfile>();
}
и
public class UserProfile implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "seqUserProfile", sequenceName = "seqUserProfile")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqUserProfile")
private Integer id;
@ManyToOne
@JoinColumn(name = "idUser")
@JsonIgnore
private User user;
@ManyToOne
@JoinColumn(name = "idProfile")
private Profile profile;
}
Мой репозиторий:
public interface IUserRepository extends JpaRepository<User, Integer>{
User findByEmail(String email);
}
Мой сервис:
@Service
public class UserServiceImpl implements IUserService{
@Autowired
private IUserRepository userRepository;
public User getUserByEmail(String email) {
return userRepository.findByEmail(email);
}
public void updateUser(User user) {
userRepository.save(user);
}
}
Мой контроллер:
@RestController
public class UserController {
@Autowired
private IUserService userService;
@PutMapping(value="/user/{id}", consumes=MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> updateUser(
@PathVariable(value="id", required = true) Integer id,
@RequestBody User user) {
userService.updateUser(user);
return new ResponseEntity<User>(HttpStatus.NO_CONTENT);
}
}
Журналы и ошибки:
Hibernate: выберите user0_.id в качестве id1_19_1_, user0_.электронная почта как email4_19_1_ от пользователя user0_, где user0_.id =?
Hibernate: выберите profil0_.id в качестве id1_13_0_, profil0_.code_profil в качестве code_pro2_13_0_, profil0_.libelle_profil в виде libelle_3_13_0_, где profil * 201_0100 * 00 * 00 = 023 * 00 = 023 * 0 = 023 * 0 = 023 = 023 * = 023 = 023 = 023 = 00: 0 = 0,1000.-30 00: 38: 15.385 DEBUG 10692 --- [nio-8080-exec-1] org.hibernate.SQL: выбрать nextval ('hibernate_sequence') Hibernate: выбрать nextval ('hibernate_sequence')
2018-12-30 00: 38: 15.389 ПРЕДУПРЕЖДЕНИЕ 10692 --- [nio-8080-exec-1] ohengine.jdbc.spi.SqlExceptionHelper: Ошибка SQL: 0, состояние SQLState: 42P01
2018-12-30 00: 38: 15.389 ОШИБКА10692 --- [nio-8080-exec-1] ohengine.jdbc.spi.SqlExceptionHelper: ОШИБКА: отсутствует «hibernate_sequence» Позиция: 17
Мой поток JSON:
{
"id": 1,
"email": "email",
"userProfiles": [
{
"profile": {
"id": 1,
"codeProfile": "ADMIN",
"libelleProfile": "Administrateur",
}
},
{
"profile": {
"id": 2,
"codeProfile": "PROFILE2",
"libelleProfile": "Profile 2",
}
}
]
}