大家有没遇到这样的问题啊,我用uuid的主键生成策略,修改数据的时候变成了新增,不知道怎么解决,哪位大神帮解决下。代码如下: //JPA 基类的标识 @MappedSuperclass public abstract class PkidEntity { /** * 主键及主键生成方式 */ @Id @GenericGenerator(name="hibernate-uuid",strategy="uuid") @GeneratedValue(generator="hibernate-uuid") @Column(name="pkid", nullable=false) protected String pkid; public String getPkid() { return pkid; } public void setPkid(String pkid) { this.pkid = pkid; } } 但是我用序列的生成方式则没有这样的问题 @MappedSuperclass public abstract class IdEntity { protected Long id; @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PKGen") @SequenceGenerator(name = "PKGen", sequenceName = "HIBERNATE_SEQUENCE", allocationSize = 1) public Long getId() { return id; } public void setId(Long id) { this.id = id; } } |
|
天啊,居然没人回答,太伤心了
|
|
你的 update 长啥样? 贴出来看看啊
|
|
update是用的spring data jpa啊 public interface DictionaryDao extends PagingAndSortingRepository<Dictionary, String>,DictionaryDaoCustom{} 这是调用save @Transactional(readOnly = false) public void saveDictionary(Dictionary entity) { dictionaryDao.save(entity); } |
|
50分 |
我一般是这样写
@Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid", strategy = "uuid") public String getId() { return this.id; } public void setId(String id) { this.id = id; } |
改成你那样也不行,不知道还有哪里需要配置 |
|
你修改的方法是什么?
|
|
20分 |
看了下,原来你是用ORACLE数据库的序列自增的,你就用@SequenceGenerator
|
我不想用序列啊,我想用自动生成的id |
|
30分 |
试试换成saveorupdate |
我用的是spring data jpa ,里面没有saveorupdate 方法 |
|
有没有大神指导下啊
|
|
我找到问题了,原来不是hibernate的问题,是我页面的PKID没有传进来,唉
|
|
神啊救救我吧
|