アプリケーションには、(boarding_id + invoice_no + item_id)をキーとして持つBoardingテーブルがあります。Boardingと同じテーブル構造を持つBoarding_tmpテーブル。csvファイルからBoarding_tmpをロードしています(パイプ区切り文字の列の値)
すべての列を持つBoardingJavaBeanがあります。2つのリストがあるとしましょう-
1. boardingList with all active records in Boarding table
2. boardingTmpList with all records in Boarding_Tmp table
以下のシナリオを実装するには、これら2つのリストを比較する必要があります-
BoardingテーブルをBoarding_tmpテーブルと比較し、次のことを行う必要があります(SQL結合はありません。これはオブジェクトレベルで実行する必要があります)-
a. All records which are in Boarding_tmp but not in Boarding table should be inserted in Boarding table (means they are new records)
b. All records which are in Boarding but not in Boarding_tmp table should be mark as deactivated in Boarding table (we have a active column in Boarding table)
ここBoarding.javaで-
public class Boarding implements Comparable {
private String bordingId;
private String itemId;
private String invoiceNo;
private String itemName;
private long qty;
private double price;
/**
* @return the bordingId
*/
public String getBordingId() {
return bordingId;
}
/**
* @param bordingId
* the bordingId to set
*/
public void setBordingId(String bordingId) {
this.bordingId = bordingId;
}
/**
* @return the itemId
*/
public String getItemId() {
return itemId;
}
/**
* @param itemId
* the itemId to set
*/
public void setItemId(String itemId) {
this.itemId = itemId;
}
/**
* @return the invoiceNo
*/
public String getInvoiceNo() {
return invoiceNo;
}
/**
* @param invoiceNo
* the invoiceNo to set
*/
public void setInvoiceNo(String invoiceNo) {
this.invoiceNo = invoiceNo;
}
/**
* @return the itemName
*/
public String getItemName() {
return itemName;
}
/**
* @param itemName
* the itemName to set
*/
public void setItemName(String itemName) {
this.itemName = itemName;
}
/**
* @return the qty
*/
public long getQty() {
return qty;
}
/**
* @param qty
* the qty to set
*/
public void setQty(long qty) {
this.qty = qty;
}
/**
* @return the price
*/
public double getPrice() {
return price;
}
/**
* @param price
* the price to set
*/
public void setPrice(double price) {
this.price = price;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((bordingId == null) ? 0 : bordingId.hashCode());
result = prime * result
+ ((invoiceNo == null) ? 0 : invoiceNo.hashCode());
result = prime * result + ((itemId == null) ? 0 : itemId.hashCode());
return result;
}
@Override
public int compareTo(Object o) {
if (this == o) {
return 0;
}
if (o == null) {
return 1;
}
if (getClass() != o.getClass()) {
return 1;
}
Boarding other = (Boarding) o;
if (bordingId == null) {
if (other.bordingId != null) {
return 1;
}
} else if (!bordingId.equals(other.bordingId)) {
return 1;
}
if (invoiceNo == null) {
if (other.invoiceNo != null) {
return 1;
}
} else if (!invoiceNo.equals(other.invoiceNo)) {
return 1;
}
if (itemId == null) {
if (other.itemId != null) {
return 1;
}
} else if (!itemId.equals(other.itemId)) {
return 1;
}
return 0;
}
}
助けてください。ありがとう。