type com.org.entity.Class does not take parameters
Getting this error while generating Q Classes
public QStudent(Class<? extends Student> type, PathMetadata metadata, PathInits inits) { super(type, metadata, inits); this.className = inits.isInitialized("className") ? new QClass(forProperty("className")) : null; this.section = inits.isInitialized("section") ? new QSection(forProperty("section")) : null; }
this is the generated code showing error in QStudent.java and 5 other Q classes
Following is class.java
`package com.xendworks.manage.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.xendworks.manage.utils.annotations.DisplayName;
import com.xendworks.manage.utils.annotations.PluralName;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import lombok.*;
import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name = "Class")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@PluralName("classes")
public class Class extends EntityBase {
@Column(name = "class_name", nullable = false)
@NotNull
@DisplayName("Name")
private String name;
@Column(name = "class_code")
@DisplayName("Class Code")
private String classCode;
@JsonIgnore
@ManyToMany(mappedBy = "mappedClasses")
@DisplayName("Class Group")
private Set<ClassGroup> classGroupSet = new HashSet<>();
@ManyToMany
@JoinTable(
name = "class_section",
joinColumns = @JoinColumn(name = "class_id"),
inverseJoinColumns = @JoinColumn(name = "section_id")
)
@DisplayName("Sections")
private Set<Section> mappedSections = new HashSet<>();
}`
Following is the department entity
`@Entity
@Table(name = "Department")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@PluralName("departments")
public class Department extends EntityBase {
@Column(name = "dept_name")
@DisplayName("Name")
@NotNull
private String name;
@Column(name = "dept_desc")
@DisplayName("Description")
@PartialField
private String deptDesc;
// @OneToOne
// @JoinColumn(name = "fk_dept_head", nullable = true)
// @DisplayName("Head of department")
// private Employee department_head;
@JsonBackReference
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "fk_dept_id", referencedColumnName = "id")
@DisplayName("Employees")
private Set<Employee> employee;
@ManyToMany
@JoinTable(
name = "department_courses",
joinColumns = @JoinColumn(name = "dept_id"),
inverseJoinColumns = @JoinColumn(name = "course_id")
)
@DisplayName("Courses")
private Set<Course> mappedCourses = new HashSet<>();
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
Department dept = (Department) o;
return id != null && Objects.equals(id, dept.id);
}
@Override
public int hashCode() {
return getClass().hashCode();
}
}`
When i remove @OneToOne field in department entity error for QDepartment.java is resolved
Following is the pom.xml i use in my project
`<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.2</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.xendworks</groupId>
<artifactId>manage</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Xend Manage</name>
<description>Xend manage</description>
<properties>
<java.version>17</java.version>
<maven.compiler.release>17</maven.compiler.release>
<nimbusds.version>8.19</nimbusds.version>
<querydsl.version>5.0.0.M1</querydsl.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<!-- Needed for Async Logging with Log4j 2 -->
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.3.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>4.17.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>6.1.7.Final</version>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>oauth2-oidc-sdk</artifactId>
<version>${nimbusds.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>${querydsl.version}</version>
<classifier>jakarta</classifier>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<classifier>jakarta</classifier>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-core</artifactId>
<version>${querydsl.version}</version>
</dependency>
<dependency>
<groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<release>17</release>
</configuration>
</plugin>
</plugins>
</build>
</project>`
This error occurs only for the 5 entities. I'm able to solve these errors if i remove the fields with @ManyToOne and @OneToOne annotations `
i suspect that this has to do with the jakarta annotation processing
This issue was due to using the Keyword Class for my entity. Changing that fixed my issue