У меня есть два класса, в отношении 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"), [email protected](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"), [email protected](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;
}
}
В странице продукта I необходимо показать детали продукта, такие как 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
получаю исключение, что-то неправильно в отношении? почему я получаю это исключение? может ли кто-нибудь помочь мне, как решить?
Это действительно дует мой разум. –
Вам не нужен метод setter для свойства имени пользователя Admin. Попробуйте напечатать имя пользователя admin в java и проверить журналы и сообщить нам, что вы получаете. – Lucky
@ Lucky У меня есть, но забыл скопировать пасту ... –