Gre*_*rey 23 jpa spring-mvc spring-data spring-data-jpa
生成我的实体ID,当我使用DAO而不是Spring数据JPA时它工作正常.
@Id
@Column(name = TABLE_COLUM_NAME_ID)
@GeneratedValue
private int id;
Run Code Online (Sandbox Code Playgroud)
现在我已经开始使用Spring数据JPA,在我打电话之后repository.save(myboject),或者repository.saveAndFlush(myobject),我打电话myobject.getId().但是id从未填充过.
我搜索了我的数据库,对象在数据库中,ID正确.有谁知道为什么我打电话后没有设置id save()?我用的时候没问题entitymanager.save().
wrs*_*der 15
我相信这篇文章回答了你的问题:
为什么在Spring Data JPA Repository上的save()之后使用返回的实例?
该repository.save()方法实际上返回一个新对象,如JPA entityManager.merge(),返回的对象是将设置ID的对象.
NPK*_*PKR 11
试试这个
myboject = repository.save(myboject);
repository.flush();
Run Code Online (Sandbox Code Playgroud)
然后打电话给getId();
repository.saveAndFlush();方法:
MyObject savedObject= repository.saveAndFlush(newObject);
@GeneratedValue(strategy = GenerationType.AUTO))添加到相关字段(id): Run Code Online (Sandbox Code Playgroud)@Id @Column(name = "id") @GeneratedValue(strategy = GenerationType.AUTO) public long getId() { return id; }
尝试指定@GeneratedValue类似的策略
@GeneratedValue(strategy = GenerationType.AUTO)
Run Code Online (Sandbox Code Playgroud)
此方法返回保存的 id
myobject = repository.saveAndFlush(myobject);
Run Code Online (Sandbox Code Playgroud)
现在你有了你的id.
| 归档时间: |
|
| 查看次数: |
39640 次 |
| 最近记录: |