我有一些实体类,其id配置如下
@Entity
public class PatientNote {
@Id
@GeneratedValue
private Integer id;
CREATE TABLE patient_note (
id int8 NOT NULL GENERATED BY DEFAULT AS IDENTITY,
created_date_time timestamp NOT NULL,
created_by_user_id int8 NULL,
note varchar(4000) NULL,
patient_id int8 NOT NULL,
CONSTRAINT patient_note_pkey PRIMARY KEY (id)
);
public List<PatientNote> fromClientNoteToPatientNote(List<ClientNote> clientNoteList) {
return clientNoteList.stream().map(clientNote -> {
PatientNote patientNote = new PatientNote();
patientNote.setCreatedDateTime(clientNote.getModifiedDateTime());
patientNote.setNote(clientNote.getComments());
patientNote.setCreatedByUserId(companyUserService.findUserByLogin(clientNote.getLoggedUser()));
patientNote.setPatientId(patientProfileService.findByPartOfOldClientGuid(clientNote.getClientGuid()));
return patientNote;
}).collect(Collectors.toList());
@Scheduled(cron = "0 1 * * *")
public void doJob() {
List<PatientNote> patientNotes = patientNoteService.fromClientNoteToPatientNote(notesForClientFromOldProject);
patientNoteService.saveAll(patientNotes);
}
public List<ClientNote> getNotesForClientFromOldProject(Client client) {
String url = "http://localhost:8080/note/getClientNotes?client_guid={clientGuid}&agency={agency}";
ResponseEntity<List<ClientNote>> clientNoteResponse =
restTemplate.exchange(url,
HttpMethod.GET, null, new ParameterizedTypeReference<List<ClientNote>>() {
}, client.getClientGuid(), client.getAgency());
return clientNoteResponse.getBody();
接下来是我的问题。例如,第一天,我获取所有记录并保存它们。但是第二天我会再次得到所有的记录,包括第一天已经保存的记录。当我试着拯救第二天的时候会发生什么?是所有记录都将再次插入还是Spring数据只插入新记录,从第一天开始的旧记录将被更新?我需要第二种情况下的行为
Save和saveAll将始终向数据库插入新记录。
您将不得不手动执行筛选,可能是在patientGuid字段上,或者在模型中向其添加唯一约束,并捕获违反此约束时数据库将引发的异常。
我有一个使用JPA注释生成数据库主键的代码。一个数据库序列用于使用Oracle DB生成PK.Am 现在我对此的理解是:DB sequencer返回的sequence id作为rec_id。这是正确的吗? 医生说: 序列策略序列策略由两部分组成——定义命名序列和在一个或多个类的一个或多个字段中使用命名序列。@Sequence Generator注释用于定义序列并接受名称、初始值(默认值为1)和分配
我是Spring data JPA的新手,正在尝试了解如何最好地将其与QueryDSL一起使用。如果没有QueryDSL,我就可以用@Query注释在SpringData接口中创建任何查询。 为了获得使用QueryDSL的相同体验,根据我所看到的,我需要创建我自己的自定义存储库实现并让我的repo接口扩展我的自定义实现接口,或者将我的所有QueryDSL查询放在包装我的repo的服务层。 在第一种
和 和 我的存储库:
嗨,我是Spring Data JPA的新手,我想知道即使我将Id传递给实体,Spring data jpa也是插入而不是合并的。我想当我实现持久接口并实现这两个方法时: 它将自动合并而不是持久化。 我有一个名为User like的实体类: 再上一节课 我有一个名为UserRepostory的自定义存储库,它扩展了JpaReopistory。当我看到实现演示SpringDataJpa使用以上两种方
问题内容: 我必须在Hibernate,Jpa的应用程序(弹簧)中使用两个不同的数据库。我想直接将不同的表定义为不同的数据源。所以我使用两个不同的持久性单元,然后尝试使用 和 将不同的表放入不同的包中。但这不起作用。用第一个数据源来影响所有表。然后我尝试将诸如类的名称写入持久性XML文件 和it.two.app.domain.second.OtherTable 但是,当我运行Log时,说表’fir
我有两个实体。父母和孩子。 儿童知识库。JAVA 我试图通过标准找到子实体,它应该总是有父实体。 我得到一个例外,它试图在地址表中找到parentObj。 我找到了这个链接,并尝试了Joep给出的解决方案,但出现了相同的错误。 Spring数据JPA JpaSpecificationExecator EntityGgraph 我错过了什么。我无法理解为什么/如何在just Child对象中查找pa