|
大家有没遇到这样的问题啊,我用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没有传进来,唉
|
|
|
神啊救救我吧
|
|