回答編集履歴

3 ロジックの誤記

kuniku

kuniku score 253

2017/11/20 11:06  投稿

メッセージの
「There is no getter for property named 'InstrumentName' in 'class java.lang.String'」
String に、 InstrumentName というプロパティのgetterメソッドが無いよ
というメッセージになってますが、parameterType="String" は、問題なさそうには見えますね。
```
http://www.mybatis.org/mybatis-3/ja/sqlmap-xml.html
文字列代入
ORDER BY ${columnName}
```
で、${変数} となっているので、
```java
   public List<Part> findAllPart(String InstrumentName){
       System.out.println(InstrumentName);
       return session.selectList("findAllPart", InstrumentName + "_part");
   }
```
```xml
  <select id="findAllPart" resultType="jp.co.〇〇.Part" parameterType="String">
       SELECT * from ${InstrumentName}
   </select>
```
にしてみたら、どうでしょうか。
似たような、「from 任意の文字列(任意のテーブル名)」では、以下も参考にどうぞ。
```xml
https://stackoverflow.com/questions/11760074/mybatis-string-as-parameter
Answer5
<select id="selectAll" parameterType="String" resultMap="fastXMLResultMap">
       SELECT CREATIONDATE, DOCUMENTID, TITEL, REGTITEL, INFORCEDATE, DOCTYPE
       FROM ${value}
</select>
```
---
追記、上記でも解決できないので、parameterType="String" をやめて、mapに変更する
mapは、java.util.Map
```java
   public List<Part> findAllPart(String InstrumentName){
       System.out.println(InstrumentName);
       Map map = new HashMap();
       map.put("instrumentName", InstrumentName + "_part");
       session.selectList("findAllPart", map);
       return session.selectList("findAllPart", InstrumentName + "_part");
       return session.selectList("findAllPart", map);
       //return session.selectList("findAllPart", InstrumentName + "_part");
   }
```
```xml
  <select id="findAllPart" resultType="jp.co.〇〇.Part" parameterType="map">
       SELECT * from ${InstrumentName}
   </select>
```
2 コメントで記載した内容を、本文に反映

kuniku

kuniku score 253

2017/11/16 12:21  投稿

メッセージの
「There is no getter for property named 'InstrumentName' in 'class java.lang.String'」
String に、 InstrumentName というプロパティのgetterメソッドが無いよ
というメッセージになってますが、parameterType="String" は、問題なさそうには見えますね。
```
http://www.mybatis.org/mybatis-3/ja/sqlmap-xml.html
文字列代入
ORDER BY ${columnName}
```
で、${変数} となっているので、
```java
   public List<Part> findAllPart(String InstrumentName){
       System.out.println(InstrumentName);
       return session.selectList("findAllPart", InstrumentName + "_part");
   }
```
```xml
  <select id="findAllPart" resultType="jp.co.〇〇.Part" parameterType="String">
       SELECT * from ${InstrumentName}
   </select>
```
にしてみたら、どうでしょうか。
似たような、「from 任意の文字列(任意のテーブル名)」では、以下も参考にどうぞ。
```xml
https://stackoverflow.com/questions/11760074/mybatis-string-as-parameter
Answer5
<select id="selectAll" parameterType="String" resultMap="fastXMLResultMap">
       SELECT CREATIONDATE, DOCUMENTID, TITEL, REGTITEL, INFORCEDATE, DOCTYPE
       FROM ${value}
</select>
```
```
---
追記、上記でも解決できないので、parameterType="String" をやめて、mapに変更する
mapは、java.util.Map
```java
   public List<Part> findAllPart(String InstrumentName){
       System.out.println(InstrumentName);
       Map map = new HashMap();
       map.put("instrumentName", InstrumentName + "_part");
       session.selectList("findAllPart", map);
       return session.selectList("findAllPart", InstrumentName + "_part");
   }
```
```xml
  <select id="findAllPart" resultType="jp.co.〇〇.Part" parameterType="map">
       SELECT * from ${InstrumentName}
   </select>
```
1 微修正

kuniku

kuniku score 253

2017/11/15 19:31  投稿

There is no getter for property named 'InstrumentName' in 'class java.lang.String'
メッセージの
「There is no getter for property named 'InstrumentName' in 'class java.lang.String'」
String に、 InstrumentName というプロパティのgetterメソッドが無いよ
というメッセージになってますが、parameterType="String" は、問題なさそうには見えますね。
```
http://www.mybatis.org/mybatis-3/ja/sqlmap-xml.html
文字列代入
ORDER BY ${columnName}
```
で、${変数} となっているので、
```java
   public List<Part> findAllPart(String InstrumentName){
       System.out.println(InstrumentName);
       return session.selectList("findAllPart", InstrumentName + "_part");
   }
```
```xml
  <select id="findAllPart" resultType="jp.co.〇〇.Part" parameterType="String">
       SELECT * from ${InstrumentName}
   </select>
```
にしてみたら、どうでしょうか。
似たような、「from 任意の文字列(任意のテーブル名)」では、以下も参考にどうぞ。
```xml
https://stackoverflow.com/questions/11760074/mybatis-string-as-parameter
Answer5
<select id="selectAll" parameterType="String" resultMap="fastXMLResultMap">
       SELECT CREATIONDATE, DOCUMENTID, TITEL, REGTITEL, INFORCEDATE, DOCTYPE
       FROM ${value}
</select>
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る