前提・実現したいこと
以下のようなSQLをJPAで実装したいと思います。
SQL
1select a.id, a.username , b.name as category_name, a.created_at 2from user a 3inner join category b 4on a.category_id = b.id
問題・エラーメッセージ
There was an unexpected error (type=Internal Server Error, status=500). org.hibernate.hql.internal.ast.QuerySyntaxException: user is not mapped [SELECT a.id, a.username, b.name as category_name, a.created_at FROM user a INNER JOIN category b ON a.category_id = b.id]; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: user is not mapped [SELECT a.id, a.username, b.name as category_name, a.created_at FROM user a INNER JOIN category b ON a.category_id = b.id]
どこが間違っているでしょうか?
試したこと
Test.java
Java
1@Data 2@Entity 3@AllArgsConstructor 4public class Test { 5 private long id; 6 private String username; 7 private String category_name; 8 private Date created_at; 9}
TestRepository.java
Java
1@Repository 2public interface TestRepository { 3 public List<Test> findAll(); 4}
TestRepositoryImpl.java
Java
1@Component 2public class TestRepositoryImpl implements TestRepository { 3 @Autowired 4 EntityManager entityManager; 5 6 @SuppressWarnings("unchecked") 7 @Override 8 public List<Test> findAll() { 9 StringBuilder sql = new StringBuilder(); 10 sql.append("SELECT a.id, a.username, b.name as category_name, a.created_at "); 11 sql.append("FROM user a "); 12 sql.append("INNER JOIN category b "); 13 sql.append("ON a.category_id = b.id"); 14 15 Query query = entityManager.createQuery(sql.toString()); 16 return query.getResultList(); 17 } 18}
補足情報(FW/ツールのバージョンなど)
Java8
Spring Boot 2.0.4

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。