I'm using SpringBoot, Spring data and postgresql.
In postgres I created one table.
CREATE EXTENSION "uuid-ossp";
CREATE TABLE user (
id serial PRIMARY KEY not null,
user_id varchar(255) not null default uuid_generate_v4()
);
Than create entity
@Entity
public class User implements Serializable {
private static final long serialVersionUID = 9129894781337596497L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(columnDefinition = "serial")
private Integer id;
@Column(insertable = false)
private String userId;
public static User create(){
User user = new User();
return user;
}
public String getUserId(){
return userId;
}
}
Than create jpa repository like this
@Repository
public interface UserRepository extends JpaRepository<User, Integer> {}
When I save the user I need to get id and userId but I get null instead and in database is generated UUID.
User user = userRepository.save(User.create());
assertThat(user.getUserId()).isNotNull();
How can I get those generated values from database?