下面列出了怎么用javax.persistence.PreRemove的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
// Set<User> favoriteUsers = getFavoriteUsers();
// if (favoriteUsers != null) {
// for (User favoriteMember : favoriteUsers) {
// favoriteMember.getFavoriteProducts().remove(this);
// }
// }
Set<Promotion> promotions = getPromotions();
if (promotions != null) {
for (Promotion promotion : promotions) {
promotion.getProducts().remove(this);
}
}
Set<OrderItem> orderItems = getOrderItems();
if (orderItems != null) {
for (OrderItem orderItem : orderItems) {
orderItem.setProduct(null);
}
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
Set<Product> products = getProducts();
if (products != null) {
for (Product product : products) {
product.setBrand(null);
}
}
Set<ProductCategory> productCategories = getProductCategories();
if (productCategories != null) {
for (ProductCategory productCategory : productCategories) {
productCategory.getBrands().remove(this);
}
}
Set<Promotion> promotions = getPromotions();
if (promotions != null) {
for (Promotion promotion : promotions) {
promotion.getBrands().remove(this);
}
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
Set<PaymentMethod> paymentMethods = getPaymentMethods();
if (paymentMethods != null) {
for (PaymentMethod paymentMethod : paymentMethods) {
paymentMethod.getShippingMethods().remove(this);
}
}
Set<Order> orders = getOrders();
if (orders != null) {
for (Order order : orders) {
order.setShippingMethod(null);
}
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
Set<Promotion> promotions = getPromotions();
if (promotions != null) {
for (Promotion promotion : promotions) {
promotion.getCoupons().remove(this);
}
}
List<Order> orders = getOrders();
if (orders != null) {
for (Order order : orders) {
order.getCoupons().remove(this);
}
}
}
/**
* Delete orders and order items.
*/
@PreRemove
private void deleteOrders() {
EntityManager em = OrderRepository.REPOSITORY.getEMF().createEntityManager();
try {
em.getTransaction().begin();
em.createQuery("DELETE FROM PersistenceOrderItem oi WHERE oi.order = :order")
.setParameter("order", this).executeUpdate();
em.getTransaction().commit();
} finally {
em.close();
}
}
/**
* Delete orders and order items.
*/
@PreRemove
private void deleteOrders() {
EntityManager em = UserRepository.REPOSITORY.getEMF().createEntityManager();
try {
em.getTransaction().begin();
em.createQuery("DELETE FROM PersistenceOrderItem oi WHERE oi.order.user = :user")
.setParameter("user", this).executeUpdate();
em.createQuery("DELETE FROM PersistenceOrder o WHERE o.user = :user")
.setParameter("user", this).executeUpdate();
em.getTransaction().commit();
} finally {
em.close();
}
}
@PreRemove
void onPreRemove(Object o) {
String txId = (String)ThreadLocalContext.get(CompositeTransactionParticipantService.CURRENT_TRANSACTION_KEY);
if (null == txId){
LOG.info("onPreRemove outside any transaction");
} else {
LOG.info("onPreRemove inside transaction [{}]", txId);
enlist(o, EntityCommand.Action.DELETE, txId);
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
Set<Article> articles = getArticles();
if (articles != null) {
for (Article article : articles) {
article.getTags().remove(this);
}
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
Set<Promotion> promotions = getPromotions();
if (promotions != null) {
for (Promotion promotion : promotions) {
promotion.getProductCategories().remove(this);
}
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
Set<Product> products = getProducts();
if (products != null) {
for (Product product : products) {
product.getTags().remove(this);
}
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
if (getDeposit() != null) {
getDeposit().setPayment(null);
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
Set<Deposit> deposits = getDeposits();
if (deposits != null) {
for (Deposit deposit : deposits) {
deposit.setOrder(null);
}
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
Set<Order> orders = getOrders();
if (orders != null) {
for (Order order : orders) {
order.setPaymentMethod(null);
}
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
Set<ShippingMethod> shippingMethods = getShippingMethods();
if (shippingMethods != null) {
for (ShippingMethod shippingMethod : shippingMethods) {
shippingMethod.setDefaultDeliveryCorp(null);
}
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
Set<Promotion> promotions = getPromotions();
if (promotions != null) {
for (Promotion promotion : promotions) {
promotion.getMemberRanks().remove(this);
}
}
}
/**
* 删除前处理
*/
@PreRemove
public void preRemove() {
if (getOrder() != null) {
getOrder().setCouponCode(null);
}
}
@Test
public void testRemove() throws Exception {
User user = new User();
user.name = "Michael";
user.email = "[email protected]";
warpdb.insert(user);
warpdb.remove(user);
assertTrue(user.callbacks.contains(PreRemove.class));
assertTrue(user.callbacks.contains(PostRemove.class));
assertNull(warpdb.fetch(User.class, user.id));
}
@Test
public void testRemoveBeans() throws Exception {
User[] users = new User[5];
for (int i = 0; i < users.length; i++) {
User user = new User();
user.name = "Mr No." + i;
user.email = "no." + i + "@somewhere.org";
users[i] = user;
}
warpdb.insert(Arrays.asList(users));
warpdb.remove(Arrays.asList(users));
assertTrue(users[0].callbacks.contains(PreRemove.class));
assertTrue(users[0].callbacks.contains(PostRemove.class));
assertNull(warpdb.fetch(User.class, users[0].id));
}
@PreRemove
public void preRemove() {
if (artifactQuality != ArtifactQuality.TEMPORARY && artifactQuality != ArtifactQuality.DELETED) {
throw new PersistenceException(
"The non-temporary artifacts cannot be deleted! Only deletion of temporary artifacts is supported ");
}
}
@PrePersist
@PreUpdate
@PreRemove
private void beforeAnyUpdate(User user) {
if (user.getId() == 0) {
log.info("[USER AUDIT] About to add a user");
} else {
log.info("[USER AUDIT] About to update/delete user: " + user.getId());
}
}
@PreRemove
void preRemove() {
preRemoved = true;
}
@PreRemove
void preRemove() {
preRemoved = true;
}
@PreRemove
void preRemove() {
preRemoved = true;
}
@PreRemove
void preRemove() {
preRemoved = true;
}
@PreRemove
void preRemove() {
preRemoved = true;
}
@PreRemove
public void preRemove(PluginInstance pluginInstance) {
updatePluginPackageMenuStatusForPluginPackage(pluginInstance, true, false);
}
@PreRemove
public void touchDeleted(BaseEntity target) {
target.setDeletedAt(DateUtil.currentSecond());
}
@PreRemove
public void preRemove(File target) {
perform(target, DELETED);
}
@PreRemove
public void onRemove(EventSource entity) {
publishEvent(entity, "deleted");
}
@PreRemove
protected void preRemove() {
this.dataChangeLastModifiedTime = new Date();
}