Articles of jpa

Spring Data JPA: обращение с унаследованным свойством другого объекта

Ситуация: (классы, являющиеся сущностями) class1 имеет свойство типа class2 subclass1 (наследует от класса 1 ) использует тип subclass2 (наследует от класса 2 ) для свойства subcl22 имеет свойство2, что класс2 не имеет Как я могу достичь этого в subclass1Repository: findByProperty_property2(xx) Очевидно, я получаю «Свойство свойства 2», найденное для типа class1 , Traversed path: class2 .property2. […]

BeanDefinitionParsingException при попытке использовать JPA с загрузкой Kotlin и Spring

Я получаю это исключение, когда я пытаюсь использовать springboot + JPA + kotlin + maven org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: @Bean method 'init' must not be private or final; change the method's modifiers to continue Offending resource: com.wirecard.kotlin.jpa.Application at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70) at org.springframework.context.annotation.BeanMethod.validate(BeanMethod.java:50) at org.springframework.context.annotation.ConfigurationClass.validate(ConfigurationClass.java:219) at org.springframework.context.annotation.ConfigurationClassParser.validate(ConfigurationClassParser.java:528) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:307) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:239) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:254) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:94) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606) at […]

Как добавить класс kotlin в градиентную задачу JavaCompile

Я использую kotlin и java с весенним ботинком для разработки своего проекта. Мой инструмент построения – это град, задача определяется следующим образом: configurations { providedRuntime jpametamodel } dependencies { jpametamodel ('org.hibernate:hibernate-jpamodelgen:4.3.11.Final') } task generateMetaModel(type: JavaCompile, group: 'build', description: 'metamodel generate') { source = sourceSets.main.java classpath = configurations.compile + configurations.jpametamodel options.compilerArgs = ["-proc:only"] destinationDir = sourceSets.generated.java.srcDirs.iterator().next() […]

JPA, Spring Data и Kotlin – Сохранение записей

Исторически я делал свой доступ к данным в Котлине вручную и имел определенную структуру данных, которую я всегда использовал: interface Id { val id: Int } data class Identity<ID : Id>( id: ID, version: Int ) data class Model<ID : Id, DATA>( identity: Identity<ID>, data: DATA ) Делая это, я могу тогда иметь DAO, которые […]

Левое соединение w / Spring Data и QueryDSL для сортировки результатов

У меня есть аналогичная проблема с этим: left join with spring data jpa и querydsl Интерфейс репозитория Spring Data: interface DocumentRepository : PagingAndSortingRepository<Document, Long>, QueryDslPredicateExecutor<Document> Я использую метод findAll для расширенного поиска с использованием предиката QueryDSL и PageRequest: val filteredDocumentsPage = documentRepository.findAll(predicate, pageable) Он работает очень хорошо, за исключением того, что я хотел бы добавить […]

Спецификация Jpa, чтобы найти подмножество значения поля

Я пишу webapp используя Spring Data JPA на уровне persistence, более конкретно, мои DAO расширяют интерфейс JpaSpecificationExecutor , поэтому я могу реализовать какой-то фильтр; представьте себе список Item с несколькими атрибутами (я опускаю аннотации и другие метаданные для ясности): data class Item(var tags: MutableList<String>) На моем сервисном уровне мой метод фильтра выглядит следующим образом: fun […]

Расширение класса данных Kotlin для использования с JPA?

У Kotlin есть класс Data который автоматически реализует equals и hashcode , но они все еще не могут автоматически использоваться в контексте JPA. Чтобы исправить это, мне было интересно, что потребуется, чтобы расширить тип Data , чтобы либо присвоить «Бизнес-ключ», либо свойство id которое является final и non updatable и инициализируется UUID который служит в […]

Сопоставление вложенных коллекций с аннотациями JPA спящего режима? Карта <Key, Set <Значение >>

Я не уверен, как правильно комментировать классы ниже. То, что я пытаюсь сделать, – это иметь объект User , список ролей для сопоставленного Asset . @Entity class Asset{ @Id @GeneratedValue(strategy = GenerationType.AUTO) var id: Long = -1 } @Entity class Role { @Id @GeneratedValue(strategy = GenerationType.AUTO) var id: Long = -1 } @Entity class User{ […]

Ошибка сопоставления коллекции с JPA + Kotlin

Я пытаюсь использовать отношения «многие-ко-многим» между этими двумя объектами. @Entity data class Course( @Id @GeneratedValue var id: Long = 0, var name: String, var lectures: Int, @JsonIgnore @JoinTable(name = "CourseStudent", joinColumns = arrayOf(JoinColumn(name = "courseId", referencedColumnName = "id")), inverseJoinColumns = arrayOf(JoinColumn(name = "studentId", referencedColumnName = "id")) ) val enrolled: List<User> = emptyList() ) @Entity data […]

JOOQ с Gradle и Kotlin не генерируют файлы

У меня есть следующая задача градиента в моей build.gradle.kts . Предполагается генерировать файлы из моих сущностей JPA. Однако при выполнении этой задачи после достижения успеха не создается ни файл, ни каталог. task(name = "generateJooq") { doLast { val configuration = Configuration().apply { generator = Generator().apply { database = Database().apply { name = "org.jooq.util.jpa.JPADatabase" properties = […]