テーブル訪問者のPostgresqlデータベースから行を取得しようとしました。しかし、私はすべての列を必要としませんが、カスタムクエリを実行する現時点では、それは動作しません。カスタムクエリを作成してHibernate内の特定の列を取得します
EntityManager em = emf.createEntityManager();
Query query = em.createQuery("SELECT visitor_id, first_name, last_name, email, company, country_id FROM Visitor", Visitor.class);
List<Visitor> result = query.getResultList();
return result;
エラーコンソールが私を示しては、以下のとおりです。
org.hibernate.exception.SQLGrammarException:クエリに org.postgresql.util.PSQLExceptionを実行できませんでした:列名の都市が見つかりませんでした でこのResultSet
SELECT visitor_id, city, company, email, email_confirmed, first_name,
identification_number, identification_other, image, is_active,
job_title, last_name, mobile_number, password, phone_number,
province, country_id, created_by, identification_type_id
FROM visitor;
すべての列があります。だから、私はすべての行を取得し、それをbindRegisterToDashboard();という別の関数で設定する関数を呼び出します。この関数は、テーブルからオブジェクトvisitorDashBoardViewModelまでの6つの列のみを設定し、ビューに表示します。
//service file code
for (Visitor item: getVisitors()) {
visitorDashBoardViewModel.add(bindRegisterToDashboard(item);
}
return visitorDashBoardViewModel;
ビジターモデル:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long visitorId;
private String identificationOther;
private long identificationNumber;
private String firstName;
private String lastName;
private String email;
private boolean emailConfirmed;
private String phoneNumber;
private String mobileNumber;
private String password;
private String province;
private String city;
private String company;
private String jobTitle;
private Boolean isActive;
private byte[] image;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name="identification_type_id")
private IdentificationType identificationType;
@ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.LAZY)
@JoinColumn(name = "country_id", nullable = false)
private Country country= new Country();
こんにちは天使。あなたは - > \ d + tablenameかテーブルの列を記述してください。+出力から関数に失敗していないようです。 "ヒップから"私は結果セットの操作でそのことを言っていると思います。 – pnorton
私はquesionを編集しました。ありがとう。 –