私は、多対多の関係を持つテーブル Computer とテーブル Employee を持っています。
DBにはリンクテーブルがありますが、HibernateにはComputerとEmployeeの2つのテーブルのエンティティしかありません。
特定のコンピューターを使用できる従業員のリストを返したいので、次のようにしています。
String queryString = "from Employee h join h.computer u where u.id = :computer_id";
Query queryObject = getSession().createQuery(queryString);
queryObject.setInteger("computer_id", id);
return queryObject.list();
前のコードの問題は、私が持っていないエンティティのリストを返すことです。私は List<ComputerEmployee> を持っているべきですが、私は持っていませんし、これはしたくありません。List<Employee> が必要です。
したがって、前のリストの他のプロパティからプロパティを読み取ろうとすると、次のエラーが発生します。
Bean property 'id' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?: org.springframework.beans.NotReadablePropertyException: Invalid property 'id' of bean class [[Ljava.lang.Object;]: Bean property 'id' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
では、有効なList<Employee>
.
アップデート:
デバッグでは、そのようにリストをチェックしました:
list.get(0).getClass()
戻るjava.lang.Object
conf は、次のように、Spring のセッション ファクトリ Bean にあります。
<property name="packagesToScan" value="uk.co.bau.domain"></property>
これは上の部分です:
@Entity
public class Employee implements Serializable {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
private String name;