我在关系Product.java
和AdminUser.java
Product.java
public class ProducImpl{
//one to one relation between product and sku
protected Sku defaultSku;
@ManyToMany(fetch=FetchType.Eager,targetEntity=AdminUserImpl.class,cascade=CascadeType.ALL)
@JoinTable(name="PRODUCT_SELLER_XREF", joinColumns = @JoinColumn(name="PRODUCT_ID",refernecedColumnName="PRODUCT_ID"), inverseJoinColumns=@JoinColumn(name="ADMIN_USER_ID",refernecedColumnName="ADMIN_USER_ID")
public List<AdminUser> adminUser = new ArrayList<AdminUser>();
public List<AdminUser> getAdminUser(){
return adminUser;
}
public void setAdminUser(List<AdminUser> adminUser){
this.adminUser = adminUser;
}
//getters and setter for defaultSku
}
AdminUser.java
public class AdminUserImpl{
@Column(name="NAME",nullable="false")
@Index(name="ADMINUSER_NAME_INDEX",columnNames="NAME")
protected String name;
@ManyToMany(fetch=FetchType.Eager,targetEntity=ProductImpl.class,cascade=CascadeType.ALL)
@JoinTable(name="PRODUCT_SELLER_XREF", joinColumns = @JoinColumn(name="ADMIN_USER_ID",refernecedColumnName="ADMIN_USER_ID"), inverseJoinColumns=@JoinColumn(name="PRODUCT_ID",refernecedColumnName="PRODUCT_ID")
public List<Product> product= new ArrayList<Product>();
public List<product> getProduct(){
return product;
}
public void setProduct(List<AdminUser> product){
this.product= product;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
}
在产品页面中,我需要显示产品详情,例如product name
,skucode
,sellername
,我们正在使用thymleaf
,因此,使用th:object
我们得到product
对象,并在产品对象的帮助下能够获得产品详细信息,但问题是,当我试图获取adminuser
对象中的卖家名称时,我得到一个例外说
org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 19): Field or property 'name' cannot be found on object of type 'org.hibernate.internal.PersistantBag'- may not public?
Product.html
<div th:object={$product}>//loading product object
code : <span th:text=*{defaultSku.id}></span>//getting sku id for product
brand: <a th:text=*{manufacturer}//getting brand name
seller: <span th:text=*{adminUser.name}//failing to get seller name
</div>
defaultSku.id
对象中product
的 product
与sku
之间存在关联,因此当我致电defaultSku.id
时,我成功skuid
但是当我打电话给adminUser.name
时,关系中的异常有什么不对吗?为什么我得到那个例外?谁能帮我解决怎么办?
答案 0 :(得分:0)
最后我找到了上述问题的解决方案
<强>问题强>
当我致电seller: <span th:text=*{adminUser.name}
时
实际上我在adminUser
对象中获取List
对象而没有循环它我试图访问管理员用户的名称因此它抛出异常
<强>溶液强>
seller: <span th:each="adminUsers : *{adminUser}" th:object="*{adminUsers}" th:text=*{name}