Postgresql Spring boot jpa无法更新postgres数据库上的简单对象
我有一个带postgres数据库的spring boot应用程序Postgresql Spring boot jpa无法更新postgres数据库上的简单对象,postgresql,jpa,spring-boot,spring-data,Postgresql,Jpa,Spring Boot,Spring Data,我有一个带postgres数据库的spring boot应用程序 <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.0.0.jre7</version> </dependency> <parent> <group
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.0.0.jre7</version>
</dependency>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
听起来像是休眠/映射问题。向我们展示您的
用户
课程。我预计Hibernate无法处理id。为了保存用户
,它必须首先按id加载,这似乎失败了。我可以保存。这不是一个id问题这是一个更新问题没有问题,我不需要帮助。对不起,如果我听起来很粗鲁,添加了用户classis是db a varchar中的id列还是什么?
public interface UserService extends CrudRepository<User, String> {
public final static String NORMAL_USER = "ROLE_user";
public User findByEmail(String email);
public User findByVerificationToken(String token);
}
@Test
public void activateUser(){
User user = new User();
user.setRegistrationDate(new Date());
user.setEnabled(false);
user.setEmail("junit@test.com");
user.setPassword("12");
userService.save(user);
User dbUser = userService.findByEmail("junit@test.com");
assertFalse(user.isEnabled());
dbUser.setEnabled(true);
userService.save(dbUser); <--- here it dies
dbUser = null;
User activatedUser = userService.findByEmail("junit@test.com");
assertTrue(activatedUser.isEnabled());
}
@Entity
@Table(name = "users")
public class User implements UserDetails {
private static final long serialVersionUID = -4009074751138066325L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long userId;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "auth_provider")
private String authProvider;
@Email
@NotNull
@Column(name = "email")
private String email;
@Column(name = "dob")
private String dob;
@Column(name = "doc_type")
private String documentType;
non args constructor and getters/setters
}