В моем проекте весенней загрузки у меня есть пользовательский тип для поля ID моей сущности. Я могу использовать тип с помощью @Embeddable
и @EmbeddedId
.
Но когда я хочу добавить еще одно поле с таким же типом в одну сущность, я получаю исключение для сопоставления столбцов следующим образом:
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity:
com.example.demo.CarEntity column: id (should be mapped with insert="false" update="false")
Класс CarId:
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Embeddable
public class CarId implements Serializable {
private String id;
@Override
public String toString() {
return id;
}
}
Класс CarEntity:
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Entity
public class CarEntity {
@EmbeddedId
private CarId id;
private String name;
private CarId anotherId;
}
Класс репозитория:
@Repository
public interface CarRepository extends JpaRepository<CarEntity, CarId> {
}
класс приложения:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
CommandLineRunner runner(CarRepository repository) {
return args -> {
CarId carId = new CarId(UUID.randomUUID().toString());
String carName = "a car";
CarEntity carEntity = new CarEntity(carId, carName, carId);
repository.save(carEntity);
repository.findAll().forEach(carEntity1 -> {System.out.println(carEntity1.getId());});
};
}
}
Как я могу добавить несколько полей одного типа в класс ввода?