我扫描了两个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
答案 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);
}
这是我的应用程序类