2017-10-05 2 views
0

thymeleafテンプレートのhtmlファイルを使用してビューに2つのテーブルを結合した後にユーザーデータを表示しようとしています。マイリポジトリクエリアノテーションはthymeleafを使用してフォームに詳細を表示すると春の表現エラーが発生する

@Query("SELECT u.username,p.privi_name FROM Users u inner join u.priviJoin p") 
List<Users> findByUsername(); 

で、私のユーザークラスは、

@Entity 
@Table(name = "users") 
public class Users implements Serializable{ 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
private Integer id; 

@Column(name = "username") 
public String username; 

@Column(name = "password") 
public String password; 

@Column(name = "privid") 
public Integer privid; 

@OneToOne() 
@JoinColumn(name="join_privillage") 
private Privillages priviJoin; 


public Integer getId() { 
    return id; 
} 

public void setId(Integer id) { 
    this.id = id; 
} 

public String getUsername() { 
    return username; 
} 

public void setUsername(String username) { 
    this.username = username; 
} 

public String getPassword() { 
    return password; 
} 

public void setPassword(String password) { 
    this.password = password; 
} 

public Integer getPrivid() { 
    return privid; 
} 

public void setPrivid(Integer privid) { 
    this.privid = privid; 
} 

public Privillages getPriviJoin() { 
    return priviJoin; 
} 

public void setPriviJoin(Privillages priviJoin) { 
    this.priviJoin = priviJoin; 
} 



public Users() { 
} 

public Users(String username, String password, Integer privid) { 
    this.username = username; 
    this.password = password; 
    this.privid = privid; 
} 
@Override 
public String toString() { 
    return String.format("Users[id=%d, username='%s', password='%s']", id, 
username, password); 
} 

} 

ある

<!DOCTYPE html> 
<html xmlns:th="http://www.thymeleaf.org"> 
    <body> 
    <div>   
     <span th:text="${joinData.username}"> 
     </span> 
     <span th:text="${joinData.privi_name}"> 
     </span> 
    </div> 
</body> 
</html> 

、私のコントローラは、

@RequestMapping(value = "/joinResult", method = RequestMethod.GET) 
public ModelAndView joinResultShow(Model model) 
    { 
     List<Users> use = new ArrayList<Users>(); 
     use = (List<Users>) userRepo.findByUsername(); 
     model.addAttribute("joinData",use); 
     ModelAndView viewObj = new ModelAndView("fleethome"); 
     return viewObj; 
    } 

ですそして、私のhtmlファイルのfleethomeがありますそして私の2番目の参加クラスPr

@Entity 
@Table(name = "privillages") 
public class Privillages implements Serializable { 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
public Integer id; 

@Column(name = "privid") 
public Integer privid; 

@Column(name = "privi_name") 
public String privi_name; 

@OneToOne(fetch=FetchType.LAZY, mappedBy="priviJoin") 
public Users user; 


public Integer getId() { 
    return id; 
} 

public void setId(Integer id) { 
    this.id = id; 
} 

public Integer getPrivid() { 
    return privid; 
} 

public void setPrivid(Integer privid) { 
    this.privid = privid; 
} 

public String getPrivi_name() { 
    return privi_name; 
} 

public void setPrivi_name(String privi_name) { 
    this.privi_name = privi_name; 
} 

public Users getUser() { 
    return user; 
} 

public void setUser(Users user) { 
    this.user = user; 
} 

public Privillages() { 
} 

public Privillages(Integer privid, String privi_name) { 
    this.privid = privid; 
    this.privi_name = privi_name; 

} 
} 

「予期しないエラーがありました(タイプ=内部サーバーエラー、ステータス= 500)」というエラーが表示されました。 SpringEL式を評価 例外:「joinData.username」(fleethome:54)。?私はこれを解決するために行うために必要なもの」

答えて

1

は、あなたのモデル属性を使用すると、番目を使用する必要がありますList.Soのタイプである:あなたの各ユーザーのリストを反復処理するテンプレート:

<div th:each= "user: ${joinData}"> 
    <span th:text="${user.username}"> 
     </span> 
     <span th:text="${user.privi_name}"> 
     </span> 
</div> 

ソリューション:

@Query("SELECT * FROM Users u ") 
List<Users> findByUsername(); 

などの表示あなたはこれを試すことができます。

<div th:each= "user: ${joinData}"> 
     <span th:text="${user.username}"> 
      </span> 
      <span th:text="${user.priviJoin.privi_name}"> 
      </span> 
    </div> 
+0

ここでエラーはありません。しかし、データにはnullが表示されます。リポジトリへの参加クエリに間違いがありますか? – Jacob

+0

質問の詳細に**ユーザー**と** PriviJoin **クラスを追加できますか? – mrtasln

+0

私の編集した答えを試してください – mrtasln

関連する問題