programing

CRUDRepository에서 업데이트 또는 저장 업데이트

fastcode 2023. 3. 31. 22:53
반응형

CRUDRepository에서 업데이트 또는 저장 업데이트

이미 같은 질문에 답한 것은 알고 있습니다만, 인터페이스에 3개의 메서드가 있는 동안 save with update를 실행하는 것이 문제입니다.현재 프로젝트에서 다음 메서드를 사용하고 있으며, 여기서 saveOrUpdate를 만드는 방법을 모릅니다.다음은 저의 수업입니다.

   public interface CompanyRepository extends CrudRepository<Company,Long>{
   Company findByCompanyName (String companyName);
   List<Company> findAll();
   Company findById(Long id);
   }

다음은 나의 회사 클래스의 일부입니다.

@Entity
public class Company extends BaseEntity{
 @NotNull
@Size(min = 2, max = 16)
private String companyName;
@Length(max = 60)
private String desc;
//TODO max: add LOGO class later for pic saving
@OneToMany
private List<MobileModel> mobileModels;

public Company()
{
  super();
  mobileModels = new ArrayList<>();
  }

//Getters n setters
 }

다음은 저의 baseEntity clas 입니다.

@MappedSuperclass
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy =  GenerationType.AUTO)
protected final Long id;

@Version
private Long version;  
//Getters n setters
}

잘 부탁드립니다.나는 5시간 동안 모든 곳에서 책을 읽고 많은 것을 시도했다.저는 단지 Company Repository가 다른 클래스에서 덮어쓰지 않고 3가지 메서드를 모두 구현하기를 원합니다만, 만약 그렇다면, 제 코드의 일부가 Company Repository에 의존하고 있기 때문에, 그 방법을 설명해 주세요.업데이트를 통해 저장을 추가하고 싶기 때문에 제 코드에 대해 설명해 주세요.

CrudRepository가지고 있는 것은save하지만 그것은 역할을 한다.update뿐만 아니라.

  • 할 때save공허한 실체에id할 수 있다save.
  • 할 때save기존과 일체적으로id그것은 할 수 있을 것이다update그 말은 즉, 그 다음에findById예를 들어, 오브젝트의 무언가를 변경했을 때, 당신은 전화할 수 있습니다.save이 오브젝트에 대해서, 실제로 동작합니다.update왜냐하면 그 후에findById입력된 오브젝트를 얻을 수 있습니다.idDB에 존재합니다.
  • saveCrudRepository단일 엔티티를 받아들이거나Iterable엔티티 타입을 지정합니다.

아래 체크가 문제를 해결하고 저장 방법이 저장 및 업데이트로 기능하는 경우 ID를 전달하면 데이터베이스에 레코드가 업데이트되고 ID를 전달하지 않으면 데이터베이스에 새 레코드가 저장되므로 내 경우 새 플레이스가 수신 개체이고 플레이스 ID를 설정하는 새로운 플레이스의 개체입니다.

    if(place.getPlaceId()!=0)
        newPlace.setPlaceId(place.getPlaceId());

언급URL : https://stackoverflow.com/questions/43719828/update-or-saveorupdate-in-crudrepository

반응형