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

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

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

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Spring

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Seasar2

Seasar2はJ2EE/Java EEでの大規模な開発を効率良く行なうためのフレームワークです。 必要な設定ファイルを従来のものと比べて少なくし、依存性を分離して記述しています。 そのため、生産性の高いプログラム開発が可能です。

Q&A

解決済

1回答

13806閲覧

配置しているのに、Doma4019が突然出てくる

tokio-k

総合スコア11

Java

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Spring

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Seasar2

Seasar2はJ2EE/Java EEでの大規模な開発を効率良く行なうためのフレームワークです。 必要な設定ファイルを従来のものと比べて少なくし、依存性を分離して記述しています。 そのため、生産性の高いプログラム開発が可能です。

0グッド

0クリップ

投稿2020/05/02 11:44

eclipse上でspringbootを使い作成しています。

Domaを使用しています

Daoファイルから、SQLファイルを使う時に
src/main/resources/META-INF/org/......../dao/...
のようにMETA-INFの下の関連しているフォルダにSQLファイルを配置しています。

Daoファイルを確認するために、テスト、ファイルを作りテストを実行すると
そのタイミングで突然Daoファイルの
@select や @Update アノテーションをつけている、SQLを呼び出すメソッドにエラーが出ます。
エラー内容は Doma4019
META-INFO/...がクラスパスから見つかりませんでした。
絶対パスは C: ....../target/classes/META-INFO/......

と出てきます。
SQLファイルはsrcフォルダに配置しているだけではいけないのでしょうか。
どの様に対処すればよろしいのでしょうか。

確認したこと

 プロパティ→Javaのビルドパスの出力フォルダーはすべてtarget/classes もしくはtarget/test-classes になっています。
除外もすべて外しています。
Javalコンパイラー → 注釈処理 → ファクトリーパス のところでも
M2_REPO/org/seasar/doma/doma/2.2.0/doma-2.2.0.jarにチェックがあります。

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

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

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

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

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

guest

回答1

0

ベストアンサー

絶対パスは C: ....../target/classes/META-INFO/......

上記のエラーメッセージで表示される絶対パスにファイルは存在しますか?
存在しない場合、m2eなどのEclipseプラグインの挙動でSQLファイルが所定のフォルダにコピーされていないのかもしれません。

m2eにはファイルがコピーを妨げているかどうかはEclipseの設定画面を確認してください。ここのコメントも参考になるかもしれません。

私はmavenやm2eに詳しくないので適切な回避方法がわからないのですが、GradleプラグインとEclipseの組み合わせは問題なく動くことを確認しています。サンプルプロジェクトもあります。
https://github.com/domaframework/simple-examples

投稿2020/05/03 00:57

nakamura-to

総合スコア103

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

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

tokio-k

2020/05/03 01:04

ご回答ありがとうございます。 確認してみます。 表示される絶対パス は存在しておりません。 target の下の classesフォルダからありません。 これらは自分で作成するものでなく、自動で作成されるという認識で間違いありませんか。 その場合、JUnitテスト の実行時に作成されるのでしょうか。
nakamura-to

2020/05/03 01:55

コピーされていないのであれば、利用しているEclipseプラグイン含めて設定の見直しが必要だと思います。 フォルダはEclipseのBuild Projectの実行により自動作成されます。 EclipseでJUnitを実行すると裏でBuild Projectが実行されるのでJUnitの時に作成されることもあると思います。
tokio-k

2020/05/03 02:22 編集

ご回答ありがとうございます。 確認してみます。 設定とは pom.xmlの記述に誤りや、漏れがあるということでしょうか。 追加です。 今、1度 求められている絶対パス通りにファイルを作ることを試みました。 targetフォルダの下にclassesフォルダを作ろうとしたところ、すでに存在すると出てきました。 プロジェクト・エクスプローラーのフィルター設定というものを変更したところ classesフォルダを見つけることができ、 その下に 絶対パスと同じフォルダを見つけました。 フォルダは存在しているのですが 他に何が原因なのでしょうか。
nakamura-to

2020/05/03 02:40

設定の確認とは、EclipseのJavaのビルドパスの設定などです。Eclipseのプラグイン(m2e)がpom.xmlをみているのであればpom.xmlも対象になります。 フォルダは存在していたとのことですが、エラーメッセージで言及されているSQLファイルは存在していますか? 存在しないとしたらフォルダにSQLファイルをコピーしないような設定がどこかでなされているはずです。例えばですがm2eのプラグインが入っていないEclipseを使ってみるなどして原因がどこにあるのか絞り込むがのいいのではと思います。 念のため、お伝えしておきますが、SQLファイルとDaoのクラスファイルは同じフォルダに出力される必要があります。Eclipseの設定でそれぞれ別のフォルダに出力することも可能なのですが、必ず同じフォルダに出力されるように設定ください。
tokio-k

2020/05/03 03:56 編集

回答ありがとうございます。 返信遅くなり申し訳ございません。 メッセージで言及されているSQLファイル名に -postgres をつけたものはあります。 出力フォルダの設定はしております。
nakamura-to

2020/05/03 05:36

なるほど。では、-postgresを外してもらうか、外したものを別途用意してもらうとうまく認識されるのではと思います。DOMA4019に対応するコンパイル時のファイルチェックでは-postgresがついていないファイルの存在を確認していますが、PostgresDialectを使うように設定していれば実行時は-postgresがついたファイルを読んでSQLを発行します。
tokio-k

2020/05/03 06:58

返信ありがとうございます -postgres を外したものを準備し、実行しましたが、変化ありませんでした。
nakamura-to

2020/05/03 11:55

そうですか... ファイルが所定の場所に存在しているのに、見つからないとエラーが出るわけですね。ちょっと原因わからないですが、再現できる必要最低限の環境を例えばGitHubなどで共有してもらえれば私の方でも調査してみたいと思います。
tokio-k

2020/05/03 12:00

返信ありがとうございます。 申し訳ございません。 こちら、インターンシップの課題としていただいているものなので、 あまり、そのような事情について知らないですが、あげるのはよろしくないのかとおもうので、共有はしないでおきます。 本当に申し訳ございません。 インターンシップ先の方にも相談してみようかと思います。 本当にありがとうございます。
tokio-k

2020/05/04 04:49

休日なので、インターン先の人に聞くことはできませんでしたが、他にいろいろと試した結果 sqlファイル作成の段階で 名前を入力するときに select-postgres.sql と入力して作られるsqlファイルはエラーになりましたが select-postgres と入力して作られるsqlファイルではエラーが出ませんでした。 どちらも同じselect-postgres.sqlでしたが .sqlが自動で付けられた場合のみ解決するようでした。 本当にありがとうございました。
退会済みユーザー

退会済みユーザー

2020/05/04 08:10

おそらく二重拡張子やな
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問