Java tutorial
/* * Copyright 2016 Ryan McGuinness * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.rationaldevelopers.oss.service; import com.rationaldevelopers.oss.data.SimpleItemRepository; import com.rationaldevelopers.oss.domain.SimpleItem; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.repository.Lock; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import javax.persistence.LockModeType; import java.util.ArrayList; import java.util.Calendar; import java.util.List; /** * @author Ryan McGuinness [rmcguinness@walmartlabs.com] * @version 8/31/16 */ @Service public class SimpleItemService { @Autowired private SimpleItemRepository simpleItemRepository; @Lock(LockModeType.READ) public SimpleItem findById(String id) { return simpleItemRepository.findOne(id); } @Lock(LockModeType.WRITE) public SimpleItem saveOrUpdate(SimpleItem simpleItem) { if (simpleItem != null) { simpleItem.setModified(Calendar.getInstance().getTime()); if (simpleItem.getCreated() == null) { simpleItem.setCreated(Calendar.getInstance().getTime()); simpleItem.setModified(simpleItem.getCreated()); } return simpleItemRepository.save(simpleItem); } return simpleItem; } @Lock(LockModeType.READ) public Iterable<SimpleItem> findAll() { return simpleItemRepository.findAll(); } @Lock(LockModeType.WRITE) public void delete(SimpleItem simpleItem) { simpleItemRepository.delete(simpleItem); } }