如何在@transactional结束后保存更改数据库中的一个实体?

时间:2017-07-13 20:57:18

标签: spring jpa annotations entitymanager jta

我在@Transactional中使用Service注释了一个方法。 我从我的数据库中检索一个对象。在使用@Transactional结尾注释的方法之后,更改Action中的一个字段(在调用Service之后),而不是保存对象,但数据库会更新。在事务结束后保存在数据库中。方法结束后,实体中的每个集都保存在数据库中。为什么呢?

在行动中:

public String showClientFileInformationDetail() {
    ...
    assetType = (ArrayList<AssetType>) ServiceAssetType.getAssetsType(client.getPersonType(),null);
    for (AssetType elem : assetType) {                  
        elem.setAssetTypeName("prueba ejemplo");
    ...
}

服务Impl:

@Transactional
@Service
public class AssetTypeServiceImpl implements AssetTypeService {
    @Autowired
    private AssetTypeDao assetTypeDao;

    public AssetTypeServiceImpl() { }

    public List<AssetType> getAssetsType(Character assetClientType, String assetClientTypeClasification,
        Character status, Integer pageNumber, Integer pageSize, String orderBy) {
        return (List<AssetType>)assetTypeDao.getAssetsType( assetClientType,  assetClientTypeClasification, status,  pageNumber,  pageSize,  orderBy);      
    }
}

服务:

@Service
public interface AssetTypeService {
    public List<AssetType> getAssetsType(Character assetClientType, String assetClientTypeClasification, Character status, Integer pageNumber, Integer pageSize, String orderBy);
}

0 个答案:

没有答案