我有一个Question实体,其中包含另一个名为Alternatives的实体,如下所示:
public class Question {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "question", cascade = CascadeType.ALL)
@JsonManagedReference
private List<Alternative> alternativeList;
}
public class Alternative implements Serializable {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "questionId", nullable = false)
@JsonBackReference
private Question question;
}
Run Code Online (Sandbox Code Playgroud)
然后,我想用一组新的“替代”列表更新一个退出的“问题”条目。为此,我用新的Question对象调用了JpaDao元素的merge方法:
@Repository
public class JpaQuestionDao implements QuestionDao {
@PersistenceContext
private EntityManager em;
@Transactional
public Question update(Question question) {
return em.merge(question);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这实际上是合并两个列表:一个已经在数据库中,另一个是新提供的。当我有非列表对象时,这种方法没有任何问题,这就是为什么我一直使用merge方法的原因。
是否有不合并但仅更新列表的替代方法?
从ActivityA我开始ActivityB.
在ActivityB中,我正在创建一个新的Serializable对象.
创建对象后,我想关闭 ActivityB并将新对象传递给ActivityA.
我该怎么做?
我的项目中有多对多关系,虽然我能够在我的两个实体表中编写,但关系表却没有写任何内容.
以下是我使用JPA注释声明这一点的方法:
Professor.java
@Entity
@Table(name = "Professor")
public class Professor implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "idProfessor", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "ALUNO_PROFESSOR",
joinColumns = @JoinColumn(name = "idProfessor", referencedColumnName = "idProfessor"),
inverseJoinColumns = @JoinColumn(name = "idAluno", referencedColumnName = "idAluno"))
private List<Aluno> alunoList;
// getters and setters
}
Run Code Online (Sandbox Code Playgroud)
Aluno.java
@Entity
@Table(name = "Aluno")
public class Aluno implements Serializable {
private static final long serialVersionUID = …Run Code Online (Sandbox Code Playgroud) 我在服务器中收到一个JSON字符串,它只有两个参数:名称和数字.查找以下示例:
{"name":"outlet.jpg","numbar":"2"},{"name":"image.jpg","number":"3"}, {"name":"testing.jpg","number":"1"}
Run Code Online (Sandbox Code Playgroud)
我正在尝试在String数组中解压缩这个值.我该怎么做?
这是我到目前为止:
JSONObject jsonObject;
try {
jsonObject = new JSONObject(jsonString.substring(1, jsonString.length()-1));
String name = jsonObject.getString("name");
String number = jsonObject.getString("number");
System.out.println("nome: " + name + " number: " + number);
} catch (JSONException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
jsonObject中没有getString()返回一个Array.此示例仅获取JSON字符串的第一个元素.如何为JSON字符串的每个键接收字符串数组?