gpt4 book ai didi

java - 如何使用dropwizard实现put操作

转载 作者:太空宇宙 更新时间:2023-11-04 12:12:06 25 4
gpt4 key购买 nike

我尝试在网上寻找使用 put rest 方法的示例,该方法类似于 github 上的 dropwizard 示例,但我还没有真正找到任何示例。

这是我的 PersonDAO.java 代码

public class PersonDAO extends AbstractDAO<Person> {
public PersonDAO(SessionFactory factory) {
super(factory);
}
public Optional<Person> findById(Long id) {
return Optional.fromNullable(get(id));
}

public Person create(Person person) {
return persist(person);
}

public List<Person> findAll() {
return list(namedQuery("com.example.helloworld.core.Person.findAll"));
}
//here i want to create delete method
}

这是我的其余 API 代码:

@Path("/people")
@Produces(MediaType.APPLICATION_JSON)
public class PeopleResource {

private final PersonDAO peopleDAO;

public PeopleResource(PersonDAO peopleDAO) {
this.peopleDAO = peopleDAO;
}

@POST
@UnitOfWork
public Person createPerson(Person person) {
return peopleDAO.create(person);
}

@GET
@UnitOfWork
public List<Person> listPeople() {
return peopleDAO.findAll();
}

@GET
@Path("/{id}")
public Optional<Person> getUser(@PathParam("id") Integer id) {
Optional<Person> person = peopleDAO.findPeopleById(id);
return person;
}
//here should be put method that calls dao class
}

这是我的 person.java 类

@Entity
@Table(name = "people")
@NamedQueries(
{
@NamedQuery(
name = "com.example.helloworld.core.Person.findAll",
query = "SELECT p FROM Person p"
)
}
)
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;

@Column(name = "fullName", nullable = false)
private String fullName;

@Column(name = "jobTitle", nullable = false)
private String jobTitle;

public Person() {
}

public Person(String fullName, String jobTitle) {
this.fullName = fullName;
this.jobTitle = jobTitle;
}

public long getId() {
return id;
}

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

public String getFullName() {
return fullName;
}

public void setFullName(String fullName) {
this.fullName = fullName;
}

public String getJobTitle() {
return jobTitle;
}

public void setJobTitle(String jobTitle) {
this.jobTitle = jobTitle;
}

@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Person)) {
return false;
}

final Person that = (Person) o;

return Objects.equals(this.id, that.id) &&
Objects.equals(this.fullName, that.fullName) &&
Objects.equals(this.jobTitle, that.jobTitle);
}

@Override
public int hashCode() {
return Objects.hash(id, fullName, jobTitle);
}
}

是否有任何简单的方法/建议来实现 put 方法?

最佳答案

资源:

@PUT
public Person update(Person person) {
return peopleDAO.update(person);
}

道:

public Person update(Person person) {
return persist(person);
}

确保您的 ID 不为空。持久化逻辑创建或更新。

关于java - 如何使用dropwizard实现put操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39778664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com