我有2个实体One是Header而另一个是Items
标题有很多项目
标题代码如下
@Entity
public class Headertable {
@Id
@GeneratedValue
private int headerId;
private String headerText;
@OneToMany(mappedBy="itemId.header",cascade=CascadeType.ALL,fetch=FetchType.EAGER)
private List<Items> items = new ArrayList<Items>();
...
getter and setters for these
和项目表如下
@Entity
public class Items {
@EmbeddedId
private ItemId itemId;
private String itemData;
.... getter and setters for these
项目表ID类
@Embeddable
public class ItemId implements Serializable{
@ManyToOne
private Headertable header;
private int itemId;
...setter and getters
以下是从标题中删除一个项目的测试代码,如下所示
Session session = this.sessionFactory.openSession();
session.beginTransaction();
Headertable header = (Headertable) session.get(Headertable.class, 1);
Iterator<Items> iterator = header.getItems().iterator();
while( iterator.hasNext() )
{
Items items = iterator.next();
if( items.getItemData().equals("chiru"))
{
iterator.remove();
}
}
session.saveOrUpdate(header);
Transaction transaction = session.getTransaction();
transaction.commit();
答案 0 :(得分:0)
您必须删除该项目:
package com.jsm.irs;
import android.support.v7.app.ActionBarActivity;
import android.telephony.SmsManager;
import android.util.Log;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;
import com.jsm.irs.SharedPreference;
import android.view.Menu;
import android.view.inputmethod.InputMethodManager;
public class SecondActivity extends Activity {
// UI References
private TextView textTxt;
private String text;
private SharedPreference sharedPreference;
Activity context = this;
Button btnCall;
EditText txtDated;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sharedPreference = new SharedPreference();
btnCall = (Button)findViewById(R.id.btnCal);
txtDated = (EditText) findViewById(R.id.txtDate);
findViewsById();
//Retrieve a value from SharedPreference
text = sharedPreference.getValue(context);
textTxt.setText(text);
}
private void findViewsById() {
textTxt = (TextView) findViewById(R.id.textView1);
btnCall.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
sendSMSMessage();
}
});
}
protected void sendSMSMessage() {
Log.i("Send SMS", "");
String phoneNo = textTxt.getText().toString();
String message = txtDated.getText().toString();
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, message, null, null);
Toast.makeText(getApplicationContext(), "SMS sent.", Toast.LENGTH_LONG).show();
}
catch (Exception e) {
Toast.makeText(getApplicationContext(), "SMS faild, please try again.", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
如果未使用session.delete(items);
,则从反面删除引用对保存的数据没有影响。