Mon objet:
@Entity
@Table(name="user")
public class User {
@Id
@Column(name="uid")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
//more code
}
Lorsque je POST
user
JSON
sans uid
, j'obtiens une erreur en tant que l'identifiant donné ne doit pas être nul . Ce qui ne devrait pas être le cas alors que uid
devrait être généré par la base de données. S'il vous plaît indiquer ce qui me manque.
JSON:
{
"email": "[email protected]",
"name": "John Doe",
"phone": "98-765-4445"
}
Erreur:
{
"timestamp": 1501058952038,
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.dao.InvalidDataAccessApiUsageException",
"message": "The given id must not be null!; nested exception is Java.lang.IllegalArgumentException: The given id must not be null!",
"path": "/api/user/"
}
C'était mon mauvais, j'appelais foo(user.getId())
avant de continuer l'objet User
. Quoi qu'il en soit, éloignez-vous de cela; @GeneratedValue(strategy=GenerationType.IDENTITY)
est un code correct et génère des identifiants identiques en cas de persistance. Et Long
n'est pas un problème. Merci.
Pour générer la chaîne uuid des clés primaires (comme je suppose que vous essayez de le faire), vous pouvez essayer le code suivant:
@Id
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
private String id;