2012-06-12 14 views
-2

Как присоединиться к newMap номерах в custMap.Как присоединиться к картам

Map<String, Customer> custMap= new HashMap<String,Customer>(); 
Map<String, DoCustomer> newMap= new HashMap<String,DoCustomer>(); 
    for (Map.Entry<String, DoCustomer> cust: newMap.entrySet()) { 
    custMap.put(cust.getKey(),cust.getValue()); 
} 

public class DoCustomer { 
private Long id; 

private String custName; 

private String description; 
    private String status; 
    private List<DoCustomerBranch> doCustomerBranch=new ArrayList<DoCustomerBranch> 
public Long getId() { 
    return id; 
} 
public void setId(Long id) { 
    this.id = id; 
} 
public String getCustName() { 
    return custName; 
} 
public void setCustName(String custName) { 
    this.custName = custName; 
} 
public String getDescription() { 
    return description; 
} 
public void setDescription(String description) { 
    this.description = description; 
} 
public String getStatus() { 
    return status; 
} 
public void setStatus(String status) { 
    this.status = status; 
} 
getter/setters of doCustomerBranch 
} 

    @Entity 
    @Table(name = "CUSTOMER") 
    public class Customer implements Serializable{ 

private static final long serialVersionUID = 1L; 
private Long id; 

private String custName; 

private String description; 

private String createdBy; 
private Date createdOn; 

private String updatedBy; 
private Date updatedOn; 


private Set<CustomerBranch> customerBranch=new HashSet<CustomerBranch> 



@Id 
@GeneratedValue(generator = "CUSTOMER_SEQ") 
@SequenceGenerator(name = "CUSTOMER_SEQ", sequenceName = "CUSTOMERN_SEQ", allocationSize = 1) 
@Column(name = "ID") 
public Long getId() { 
    return id; 
} 

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


@Column(name = "CUST_NAME",nullable=false) 
public String getCustName() { 
    return custName; 
} 

public void setCustName(String custName) { 
    this.custName = custName; 
} 

@Column(name = "DESCRIPTION") 
public String getDescription() { 
    return description; 
} 

public void setDescription(String description) { 
    this.description = description; 
} 


@Column(name = "CREATED_BY", length = 50) 
public String getCreatedBy() { 
    return createdBy; 
} 

public void setCreatedBy(String createdBy) { 
    this.createdBy = createdBy; 
} 

@Temporal(TemporalType.TIMESTAMP) 
@Column(name = "CREATED_ON") 
public Date getCreatedOn() { 
    return createdOn; 
} 

public void setCreatedOn(Date createdOn) { 
    this.createdOn = createdOn; 
} 

@Column(name = "UPDATED_BY", length = 50) 
public String getUpdatedBy() { 
    return updatedBy; 
} 

public void setUpdatedBy(String updatedBy) { 
    this.updatedBy = updatedBy; 
} 

@Temporal(TemporalType.TIMESTAMP) 
@Column(name = "UPDATED_ON") 
public Date getUpdatedOn() { 
    return updatedOn; 
} 

public void setUpdatedOn(Date updatedOn) { 
    this.updatedOn = updatedOn; 
} 
    @OneToMany(cascade = { CascadeType.PERSIST, CascadeType.REMOVE }, fetch =   FetchType.LAZY, mappedBy = "customer") 
public Set<CustomerBranch> getCustomerBranch() { 
    return customerBranch; 
} 


public void setCustomerBranch(Set<CustomerBranch> customerBranch) { 
    this.customerBranch = customerBranch; 
} 

} 

CustomerBranch

@Entity 
@Table(name = "CUSTOMER_BRANCH") 
public class CustomerBranch implements Serializable{ 

    @Id 
@GeneratedValue(generator = "CUSTOMER_BRANCH_SEQ") 
@SequenceGenerator(name = "CUSTOMER_BRANCH_SEQ", sequenceName = "CUSTOMER_BRANCH_SEQ", allocationSize = 1) 
@Column(name = "ID") 
private Long id; 
private String branchName; 

private String branchAddress; 

private Customer customer; 



public Long getId() { 
    return id; 
} 

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

@Column(name = "BRANCH_NAME",nullable=false) 
public String getBranchName() { 
    return branchName; 
} 



@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name = "MOBEE_CUSTOMER") 
public Customer getCustomer() { 
    return customer; 
} 

public void setCustomer(Customer customer) { 
    this.customer = customer; 
} 

    } 
+1

Что вы имеете в виду 'join'? И что не так с вашим примером кода? Он делает то, что вы хотите? –

+0

Я хочу перенести значения newMap в custMap.i am get error is the method put (String, Customer) в виде Map не применимо для аргументов (String, DoCustomer) – nag

+0

Можете ли вы разместить определения классов клиентов и DoCustomer? – tibtof

ответ

2

ли вы имеете в виду:

custMap.putAll(newMap) 
+1

-1 это не сработает. 'DoCustomer' не является« Клиентом ». – Kai

+0

ya Я хочу этот зол, но ошибка получения iam. Метод put (String, Customer) в типе Map не применим для аргументов (String, DoCustomer) – nag

+0

от имени класса 'DoCustomer' I предположили, что это подкласс класса 'Customer', но я сделал ошибку. Поэтому метод, предложенный мной, неверен для вашей ситуации. – maks

4

Проблема с кодом является то, что вы хотите поставить DoCustomer в Customer контейнере. Он работает только в том случае, если DoCustomer является подклассом Customer.

Редактировать 1: Вы можете использовать BeanUtils для преобразования DoCustomer в Customer. Here - хороший учебник.

+0

Спасибо, DoCustomer не является подклассом клиента. В этом примере Клиент - это Entity, а DoCustomer - это свойства Клиента, можете ли вы рассказать мне еще один способ для этого sol? возможно использование BeanUtils ..... – nag

0

Как все остальные отметили, нам нужно знать, что должен сделать DoCustomer.

Но, из того, что вы нам дали, я предлагаю лить каждого DoCustomer для Клиента или, вернее, сделать нового Клиента из полей каждого DoCustomer.

Что-то вроде:

custMap.put(cust.getKey(), new Customer(cust.getValue().getId(), cust.getValue().getCustName(), and so on..)); 

внутри ваш цикл.

Я могу видеть класс клиента, определенный вами при условии, не конструктор, поэтому, естественно, вы должны добавить один к нему

+0

спасибо Майкл, что вы пишете, но в моем объекте клиента сопоставлен CustomerBranch в то время я был у меня pblm с costructor – nag

+0

Вы имеете в виду Set customerBranch? Это то же самое поле, что и List doCustomerBranch в DoCustomer? Я понимаю, что преобразование между ними сделало бы это очень длинным решением. –

+0

ОК спасибо Я поеду для альтернативы – nag