HibernateとSpring MVCを初めて使用しています。私はすべての電話番号のリストと各番号に割り当てられているユーザーの名前を表示するWebアプリケーションを作成しています。数字用とユーザー用の2つのテーブルがあります。それぞれidでインデックスされています。ユーザーIDは、数値表の外部キーです。 JSPページに名前を表示しようとすると、数値のリストを返すときに得られるのは、名前の値ではなくユーザーのID表現だけです。そのIDの代わりにユーザーの名前の値を含むようにListを作成する、標準のhibernate CRUDの例がありますか?表現?そうでない場合は、誰かが私の手助けをすることができますか?JSPページの2つのテーブルのデータを表示する方法
私はEclipse Mars IDEを使用してTomcat 8と共にJava 1.8、Spring 4.2.5、MySQL 5.7、およびHibernate 5.0.1を使用しています。
エンティティークラス:
@Entity
@Table(name="Numbers")
public class Numbers {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id", unique=true, nullable=false)
private Long id;
@Column(name="Number", nullable=false)
private String Number;
@Column(name="UserID", nullable=false)
private Long UserID;
@ManyToOne
@JoinColumn(name="FK_NUMBERS_USER")
private Users Username;
//getters & setters
}
@Entity
@Table(name="Users")
public class Users {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id", unique=true, nullable=false)
public Long id;
@Column(name="Username", unique=true, nullable=false)
public String Username;
//getters & setters
}
コントローラコード:
@RequestMapping(value="/numbers", method = RequestMethod.GET)
public ModelAndView getAllNumbers() {
List<Numbers> allNumbers = numbersService.findAllNumbers();
ModelAndView model = new ModelAndView("numbers");
model.addObject("numbers", allNumbers);
return model;
}
サービスインタフェース:
public interface NumbersService {
void saveNumber(Numbers number);
void deleteUser(Numbers number);
List<Numbers> findAllNumbers();
}
JSPファイルc:foreachの:
table border="1">
<tr>
<th>Number</th>
<th>Username</th>
</tr>
<tbody>
<c:forEach items="${numbers}" var="numbers">
<tr>
<td>${numbers.id}</td>
<td>${numbers.number}</td>
<td>${numbers.username}</td>
</tr>
</c:forEach>
</tbody>
</table>
コントローラからのコンソール出力に番号の照会を処理:
Number ID Number User ID
1 12055551212 1
2 12065551212 2
3 12075551212 1
私は「USERID」ではない数字クラスのプロパティを、使用する番号の場合に起因するJSPページで同じ出力を得ることができません。 JSPのユーザ名はテーブルが空白です。 JSPファイルで名前を取得する方法
DAOの実装:
package com.voip.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.voip.dao.NumbersDAO;
import com.voip.domain.Numbers;
import com.voip.domain.Users;
import com.voip.service.NumbersService;
public class NumbersServiceImpl implements NumbersService {
@Autowired
private NumbersDAO numbersDAO;
@Override
public List<Numbers> findAllNumbers() {
List<Numbers> allNumbers = (List<Numbers>) numbersDAO.findAll();
return allNumbers;
}
}
これを試しましたが、JSPはまだ$ {numbers.username.username}のデータでは空白です –