質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Hibernate

HibernateとはJava言語のobject-relational mapping (ORM)ライブラリであり、Object/Relational Mappingよりはるか多くの方法でアプリケーションをPOJOで機能付けることができます。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Q&A

0回答

1581閲覧

Javaのフォロー機能について DAO設計

komekome0101

総合スコア14

Hibernate

HibernateとはJava言語のobject-relational mapping (ORM)ライブラリであり、Object/Relational Mappingよりはるか多くの方法でアプリケーションをPOJOで機能付けることができます。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

0グッド

0クリップ

投稿2021/02/07 05:20

編集2021/02/07 09:40

Javaで
現在独学で社内日報を作成する機能をつrくっているのですが、新しくフォロー機能を追加しようと考えてます。
Daoモデルの設計として
@Table(name = "follow_list")

@NamedQueries({
@NamedQuery(
name = "getMyfollowlist",
query = "SELECT f.id_ee FROM Follow AS f WHERE f.id_er =:id ORDER BY f.id_ee"
)
})

@Entity
public class Follow{
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;

//フォローする側のID @ManyToOne @JoinColumn(name = "id_er", nullable = false) private Employee id_er; //フォローされている側のID @ManyToOne @JoinColumn(name = "id_ee", nullable = false) private Employee id_ee; public Integer getId_er(){ return id_er.getId(); } public Integer getId_ee(){ return id_ee.getId(); } public void setId_er(Employee id_er){ this.id_er=id_er; } public void setId_ee(Employee id_ee){ this.id_ee=id_ee; }

}
このように設計して
サーブレットで
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
EntityManager em = DBUtil.createEntityManager();

int page = 1; try{ page = Integer.parseInt(request.getParameter("page")); } catch(NumberFormatException e) { } List<Employee> employees = em.createNamedQuery("getAllEmployees", Employee.class) .setFirstResult(15 * (page - 1)) .setMaxResults(15) .getResultList(); long employees_count = (long)em.createNamedQuery("getEmployeesCount", Long.class) .getSingleResult(); //現在ログインしているユーザーのID Integer id; Employee login_employee = (Employee)request.getSession().getAttribute("login_employee"); id=login_employee.getId(); //現在ログインしているユーザーのIDをもとにフォローリストテーブルデータを取得 List<Employee> follow_list =em.createNamedQuery("getMyfollowlist", Employee.class) .setParameter("id",id) .getResultList(); em.close(); //現在ログインしているユーザーが、employeesで取得した格社員をフォローしているかしていないかをMapで管理 Map<Integer,Boolean> map = new HashMap<>(); employees.forEach(employee -> { if(follow_list.contains(employee.getId())){ map.put(employee.getId(), true); }else { map.put(employee.getId(), false); }; }); request.setAttribute("employees", employees); request.setAttribute("employees_count", employees_count); request.setAttribute("page", page); request.setAttribute("map", map); if(request.getSession().getAttribute("flush") != null) { request.setAttribute("flush", request.getSession().getAttribute("flush")); request.getSession().removeAttribute("flush"); } RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/followlist/index.jsp"); rd.forward(request, response); }

のようにフォローした社員情報をList型で取得したいのですが
Parameter value [1] did not match expected type [models.Employee (n/a)]
というエラーが出てしまいます。Employeeは社員情報のクラスDAOです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/02/07 06:30

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 「サーブレットで」と書かれてますが、Springではないのですか? 実際のコードを提示されたほうが良いのでは。
m.ts10806

2021/02/07 09:44

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 「サーブレットで」と書かれてますが、Springではないのですか?実装がブレブレに見えます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問