ArtService.java
/*******************************************************************************
* Copyright (c) 2021 Eclipse RDF4J contributors.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Distribution License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*******************************************************************************/
package org.eclipse.rdf4j.spring.domain.service;
import org.eclipse.rdf4j.model.IRI;
import org.eclipse.rdf4j.spring.domain.dao.ArtistDao;
import org.eclipse.rdf4j.spring.domain.dao.PaintingDao;
import org.eclipse.rdf4j.spring.domain.model.Artist;
import org.eclipse.rdf4j.spring.domain.model.Painting;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Component
public class ArtService {
@Autowired
private ArtistDao artistDao;
@Autowired
private PaintingDao paintingDao;
@Transactional
public Artist getArtist(IRI id) {
return this.artistDao.getById(id);
}
@Transactional
public Painting getPainting(IRI id) {
return this.paintingDao.getById(id);
}
@Transactional(propagation = Propagation.REQUIRED)
public Artist createArtist(String firstName, String lastName) {
Artist artist = new Artist();
artist.setFirstName(firstName);
artist.setLastName(lastName);
return artistDao.save(artist);
}
@Transactional(propagation = Propagation.REQUIRED)
public Painting createPainting(String title, String technique, IRI artist) {
Painting painting = new Painting();
painting.setTitle(title);
painting.setTechnique(technique);
painting.setArtistId(artist);
return paintingDao.save(painting);
}
@Transactional(propagation = Propagation.REQUIRED)
public void changeArtist(IRI painting, IRI newArtist) {
paintingDao.changeArtist(painting, newArtist);
}
}