我有我的 User 类,它有自己的表,还有 Organizer 类,它也有自己的表,并且是 User 的特化。如何使 JPA 中已保留的用户成为组织者,同时保持相同的 ID 值
public class OrganizadorService {
private final OrganizadorRepository organizerRepository;
private final UsuarioRepository userRepository;
@Autowired
private EntityManager entityManager;
public OrganizadorService(OrganizadorRepository organizerRepository, UsuarioRepository userRepository) {
this.organizerRepository = organizerRepository;
this.userRepository = userRepository;
}
@Transactional
public boolean transformToOrganizer(long id) {
try {
organizerRepository.transformToOrganizer(id);
//entityManager.getEntityManagerFactory().getCache().evictAll();
entityManager.flush();
} catch (Exception e) {
return false;
}
return true;
}
}
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.SunLovers.PriseTheSun.model.Organizer;
@Repository
public interface OrganizerRepository extends JpaRepository<Organizer, Long> {
@Modifying
@Query(nativeQuery = true, value = "INSERT INTO organizer (ID) VALUES (:id)")
@Transactional
void transformToOrganizer(@Param("id") Long id);
}
这是我希望在我的组织者服务中的transformToOrganizer 的样子。
i) 根据用户 ID 从用户表中获取用户实体。
UserEntity 用户 = userRepository.findById(id);
ii)我们有我们的用户实体,现在我假设用户到组织者的关系是@OneToOne,并且用户id是组织者表中的主键。我们创建一个新的组织者实体并设置必要的详细信息,我们设置organizer.setUser(user)。
请在此处发布您的实体定义以获得更清晰的信息。