hibernate 一对多 多的一方无法用get set方法

hibernate 一对多 多的一方无法用get set方法

问题描述:

产品编号:
产品标题:
产品价格:
产品数量:
产品类别: ${sort.sort }
文字说明:
        -------------------------------------------------------------------------
        -------------------------------------------------------------------------
        package action;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import service.ProductService;

import com.opensymphony.xwork2.ActionSupport;
import com.pojo.Product;
import com.pojo.Sort;

public class ProductUploadAction extends ActionSupport {
private HttpServletRequest request;
private Product pro;
private ProductService proService;

public ProductService getProService() {
    return proService;
}

public void setProService(ProductService proService) {
    this.proService = proService;
}

public Product getPro() {
    return pro;
}

public void setPro(Product pro) {
    this.pro = pro;
}

@Override
public String execute() throws Exception {
    // TODO Auto-generated method stub
    request = ServletActionContext.getRequest();

** //System.out.print(pro.getSort().getSort());**
return "success";
}

}

加粗哪一行总是报错

java.lang.NullPointerException
action.ProductUploadAction.execute(ProductUploadAction.java:37)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)

知道为什么了 ssh框架刚开始不熟悉 原来是 struts.xml 和 application配置文件没配好 ,bean的id 是action中的class 要一致

并没看出哪一行加粗了。,,

pro.setSort pro.getSort总是出现空指针异常 , 他们是一对多的关系
package com.pojo;

import java.util.HashSet;
import java.util.Set;

/**

  • Sort entity. @author MyEclipse Persistence Tools */

public class Sort implements java.io.Serializable {

// Fields

private Integer id;
private String sort;
private Set products = new HashSet(0);

// Constructors

/** default constructor */
public Sort() {
}

/** minimal constructor */
public Sort(String sort) {
    this.sort = sort;
}

/** full constructor */
public Sort(String sort, Set products) {
    this.sort = sort;
    this.products = products;
}

// Property accessors

public Integer getId() {
    return this.id;
}

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

public String getSort() {
    return this.sort;
}

public void setSort(String sort) {
    this.sort = sort;
}

public Set getProducts() {
    return this.products;
}

public void setProducts(Set products) {
    this.products = products;
}

}

package com.pojo;

/**

  • Product entity. @author MyEclipse Persistence Tools */

public class Product implements java.io.Serializable {

// Fields

private String productNum;
private Sort sort;
private String productTitle;
private Float productPrice;
private Integer productMax;
private String productDescribe;

// Constructors

/** default constructor */
public Product() {
}

/** full constructor */
public Product(String productNum, Sort sort, String productTitle,
        Float productPrice, Integer productMax, String productDescribe) {
    this.productNum = productNum;
    this.sort = sort;
    this.productTitle = productTitle;
    this.productPrice = productPrice;
    this.productMax = productMax;
    this.productDescribe = productDescribe;
}

// Property accessors

public String getProductNum() {
    return this.productNum;
}

public void setProductNum(String productNum) {
    this.productNum = productNum;
}

public Sort getSort() {
    return this.sort;
}

public void setSort(Sort sort) {
    this.sort = sort;
}

public String getProductTitle() {
    return this.productTitle;
}

public void setProductTitle(String productTitle) {
    this.productTitle = productTitle;
}

public Float getProductPrice() {
    return this.productPrice;
}

public void setProductPrice(Float productPrice) {
    this.productPrice = productPrice;
}

public Integer getProductMax() {
    return this.productMax;
}

public void setProductMax(Integer productMax) {
    this.productMax = productMax;
}

public String getProductDescribe() {
    return this.productDescribe;
}

public void setProductDescribe(String productDescribe) {
    this.productDescribe = productDescribe;
}

}

private Set products = new HashSet(0);
改了 private List Product> products;