Я хочу удалить объект. Когда я отлаживаю код, его работа хорошо, но объект не удалялся из БД. Посмотрите ниже.Как удалить объект в jpa
код XHTML:
<p:dataGrid value="#{staffUpdateMB.addressInfoList}"
id="addesList" var="address" columns="1" layout="grid"
styleClass="NoPadding NoIndent">
<p:panel>
<div
class="Container100 Responsive100 TealGreenBack BordRad5 White NoIndent">
<div class="Container50 Responsive100 NoIndent">
<h:outputText value="#{address.addressType}" styleClass="Fs22" />
</div>
<div class="Container50 Responsive100 TexAlRight NoIndent">
<p:commandButton class="TealGreenBack" icon="fa fa-edit"
onstart="PF('staffAddressEditDialog').show()">
<f:setPropertyActionListener value="#{address}"
target="#{staffUpdateMB.beanAddressInfo}"/>
</p:commandButton>
<p:commandButton styleClass="RedButton RaisedButton"
action="#{staffUpdateMB.removeAddress}" icon="fa fa-trash-o"
update="addesList" ajax="false">
<f:setPropertyActionListener value="#{address}"
target="#{staffUpdateMB.beanAddressInfo}" />
</p:commandButton>
</div>
</div>
... .... ..
</p:panel>
</p:dataGrid>
Java коды:
ManageBean Метод Здесь:
public void removeAddress() {
try {
System.out.println("Address ID :"+this.beanAddressInfo.getAddressID());
addressInfoDao.remove(this.beanAddressInfo.getAddressID());
context.addMessage(null, new FacesMessage(msg.getPropValue("deleteSuccess")));
} catch (Exception e) {
context.addMessage(null, new FacesMessage(msg.getPropValue("deleteError")));
logger.error("This is error : " + e);
logger.fatal("This is fatal : " + e);
}
}
Вот StaffRegiAddressInfo Entity:
@Entity
@Table(name="staffregi_addressinfo")
public class StaffRegiAddressInfo implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="addressID")
private int addressID;
@Column(name="addressType")
private String addressType;
@Column(name="village")
private String village;
@Column(name="postOffice")
private String postOffice;
@Column(name="postalCode")
private String postalCode;
@Column(name="thanaName")
private String thanaName;
@Column(name="districtName")
private String districtName;
@Column(name="divisionName")
private String divisionName;
@Column(name="countryName")
private String countryName;
@Column(name="instituteID")
private String instituteID;
@Column(name="recordNote")
private String recordNote;
@Column(name="userExecuted")
private String userExecuted;
@Column(name="dateExecuted")
@Temporal(TemporalType.TIMESTAMP)
private Date dateExecuted;
@Column(name="ipExecuted")
private String ipExecuted;
@Column(name="recordStatus")
private int recordStatus;
@ManyToOne
@JoinColumn(name="staffID")
private StaffRegiBasicInfo basicInfoAddress;
//setter, getter also..
Вот StaffRegiBasicInfo Организация:
@Entity
@Table(name="staffregi_basicinfo")
public class StaffRegiBasicInfo implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@Column(name="staffID")
private String staffID;
@OneToMany(cascade=CascadeType.ALL, mappedBy="basicInfoAddress")
@LazyCollection(LazyCollectionOption.FALSE)
private Set<StaffRegiAddressInfo> addressInfoList;
Я использую Spring 4, Hibernate 4, primefaces 5,2
Можете ли вы показать код 'addressInfoDao'? – Jens
Возможно, вы забыли manager.flush() внутри метода remove() вашего dao? –
общедоступный интерфейс StaffRegiAddressInfoDao расширяет EntityDao { } –