我正在使用conversationIDs
`starter-data-jpa 2.0.5.RELEASE。
该场景非常基本,构建一个实体并保存它。
在阅读文本之前,让我们遍历代码以获得更好的上下文。
实体类Spring boot 2.0.3.RELEASE(FINCHLEY)
:id(主键)不会自动生成,因为我们基本上是从另一个肯定是唯一的来源获得唯一的(Asset)
。
UUID.toString()
根据我添加的评论,您会看到我添加了该代码段,因为我们没有自动生成import lombok.*;
import org.springframework.data.domain.Persistable;
import javax.persistence.*;
import java.util.List;
@Setter
@Getter
@ToString
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "ASSET", schema = "SCHEMA")
public class Asset implements Persistable<String> {
// Propriety code hence column names removed.
//Let's just assume column names are fine, since when I am doing a find(), results are cool
private static final long serialVersionUID = 1L;
@Id
private String id;
private String creditPool;
private int quantity;
private int assetStatusTypeId;
private long assetTypeId;
private int ageOfAsset;
//The below snippet is part of Persistable<String> to force a new entry. Newly added following an answer in stackoverflow.
//Here, update is basically false by default,
//so as you can see isNew() will always return true forcing jpa to save a new record
@Transient
private boolean update;
@Override
public String getId() {
return this.id;
}
@Override
public boolean isNew() {
return !this.update;
}
}
。
没有摘要和Persistable,问题是相同的。
由于商业原因,我的自定义存储库类具有以下自定义保存功能。
id
正在调用@Override
public <S extends T> S save(S entity, long value) {
entity.someParams(args getting from from a jar) //which is really fine
return super.save(entity);
}
的代码在下面
save
我已经多次验证了构建器,并且确实创建了Asset asset = Asset.builder()
.id(UUID.randomId().toString()) //see always unique
.assetStatusTypeId(a valid id)
.assetTypeId(a valid id)
.creditPool("pool")
.quantity(integer value)
.ageOfAsset(integer value).build();
repo.save(asset);
对象。
但是罪魁祸首Asset
从未被处决。
我已经打开save
来检查是否调用了插入查询。但我看不到这样的查询。
休眠属性:
showSQL:true
我考虑了一个场景,即使进行了所有安全检查,JPA仍会将其视为更新场景,
我忽略了保存,也使用了jpa:
show-sql: true
properties:
hibernate:
enable_lazy_load_no_trans: true
show_sql: true
format_sql: true
jdbc:
batch_size: 5
。即使如此,也不会插入。
persist
请对此提供帮助。
stackoverflow Sources for my workarounds和重复项。 在这方面的任何帮助将不胜感激。
答案 0 :(得分:0)
保存后应刷新或直接使用saveAndFlush(asset)。