У меня есть встраиваемый класс для хранения ссылочного идентификатора, потому что я не хочу повторять детали столбца в каждой сущности JPA.
@Data
@Embeddable
public class BusinessReference {
private static final int LENGTH = 64;
@Column(
columnDefinition = "VARCHAR(64)",
length = LENGTH,
updatable = false,
nullable = false,
unique = true)
@Size(min = LENGTH, max = LENGTH)
@Pattern(regexp = "^[!-~]+$")
private String referenceId;
}
Теперь у меня есть сущность
@Data
@Entity
public class Sample {
@Id
@GeneratedValue
@Column(
updatable = false,
nullable = false,
columnDefinition = "BINARY(16)")
private UUID id;
@Embedded
private BusinessReference businessReference;
}
То, что я хочу сделать, - это создать общий интерфейс, который позволил бы мне осуществлять поиск по идентификатору ссылки, который я могу использовать для расширения еще одного CrudRepository
, если это необходимо.Обратите внимание, что мне нужен параметр String, а не объект.
public interface BusinessReferenceRepository<T> {
Optional<T> getByBusinessReference(String referenceId);
}