Spring Boot Repository.save()方法不起作用-没有提交

时间:2018-12-04 19:26:44

标签: java android-studio spring-boot qr-code

我扫描了两个QR码,并尝试从我的QR Code Android移动应用程序中获取它们,并将其与repository.save()一起保存在本地数据库中。

我的应用程序将列表发送到后端,但不插入到数据库。当我运行 localhost / 8090 时,我什么也得不到。 在浏览器中仅显示以下内容:

-查找设备
-设备代码
-设备ID

Developer.java

@Entity
public class Developer {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private long id = 0;
    private String deviceCode;
    private String deviceId;
    public Developer() {
        super();
    }

    public Developer(String deviceCode, String deviceID)
             {
        super();
        this.deviceCode = deviceCode;
        this.deviceId = deviceId;

    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String deviceCode() {
        return deviceCode;
    }

    public void set DeviceCode(String deviceCode) {
        this.deviceCode;
    }

    public String deviceId() {
        return deviceId;
    }

    public void set DeviceId(String deviceId) {
        this.deviceId;
    }

}

DeveloperRepository.java

import org.springframework.data.repository.CrudRepository;

public interface DeveloperRepository extends CrudRepository<Developer, Long> {

}

DeveloperController.java

@Controller
public class DevelopersController {

    @Autowired
    DeveloperRepository repository;

    @RequestMapping(value = "/", method = RequestMethod.POST)
    @ResponseBody
    private String addDevices(Developer deviceCodeAndId) {
        System.out.println("xyz!");

        if (!repository.exists(deviceCodeAndId.getId())) {
            repository.save(deviceCodeAndId);
            return "successfully added " +     deviceCodeAndId.getId();
        }
        return deviceCodeAndId.getId();
    }

    @RequestMapping(value = "/showall",method = RequestMethod.GET)
    public String index(Model model) {
        model.addAttribute("index",repository.findAll());
        return "index";
    }
}

deviceCodeAndID是来自Android App的类,该类已被应用扫描!

index.html

2 个答案:

答案 0 :(得分:1)

已启用事务管理。即使您使用Spring Boot数据存储库。您需要启用事务管理,否则默认情况下所有内容均为读取模式。对于读取模式,无需进行交易。但是,当您执行任何将更改数据库中数据的操作时,您需要执行事务管理。 在应用程序类中使用@EnableTransactionManagement,在DAO或服务类中使用@Transactional

答案 1 :(得分:0)

@SpringBootApplication
public class Application {

    @Autowired
    DeveloperRepository developerRepository;
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

这是我的应用程序类