I am trying to fetch the data from PostgresDB. Below is the configuration
Model Class
@MappedEntity(value = "user_tracking")
public class UserTracking {
@Id
private String id;
private String brandId;
private String status;
private String brandName;
}
Repository
@JdbcRepository(dialect = Dialect.POSTGRES)
public interface UserTrackingRepository extends PageableRepository<UserTracking, String>{
@Query(value = "SELECT ut FROM UserTracking ut",
countQuery = "SELECT count(ut) FROM UserTracking ut")
Page<UserTracking> findAllDBActivities(Pageable pageable);
}
DB Service
public @NonNull Page<UserTracking> getDBActivityByPagination(int page, int size) throws Exception{
Pageable pageable = Pageable.from(page,size,Sort.of(Sort.Order.desc("createdOn")));
//return utRepository.findAll(pageable);
return utRepository.findAllDBActivities(pageable);
}
If I run the method utRepository.findAllDBActivities(pageable) getting below exception
Execption : io.micronaut.data.exceptions.DataAccessException: SQL Error executing Query: ERROR: relation "usertracking" does not exist
But If I run the method utRepository.findAll(pageable) I am able to receive the data.
EDIT: As per denis, If I used sql query, i am getting different error. Repository Code:
@Query(value = "SELECT * FROM user_tracking",
countQuery = "SELECT count(*) FROM user_tracking"
)
Page<UserTracking> findAllDBActivities(Pageable pageable);
Error:
13:27:55.973 [main] DEBUG io.micronaut.data.query - Executing Query: select * FROM user_tracking ORDER BY user_tracking_.created_on DESC LIMIT 10
io.micronaut.data.exceptions.DataAccessException: SQL Error executing Query: ERROR: missing FROM-clause entry for table "user_tracking_"
Position: 38
at io.micronaut.data.jdbc.operations.DefaultJdbcRepositoryOperations.findStream(DefaultJdbcRepositoryOperations.java:567)
at io.micronaut.data.jdbc.operations.DefaultJdbcRepositoryOperations.lambda$findAll$6(DefaultJdbcRepositoryOperations.java:593)
at io.micronaut.data.jdbc.operations.DefaultJdbcRepositoryOperations.lambda$executeRead$18(DefaultJdbcRepositoryOperations.java:768)
at io.micronaut.data.connection.support.AbstractConnectionOperations.executeWithNewConnection(AbstractConnectionOperations.java:143)
What is the issue with configuration? Please Help
You defined the table name as
user_tracking. But your SQL query hasUserTracking, make sure you understand that Micronaut Data JDBC queries are written using SQL, not JPQL.