小编Fel*_*sso的帖子

JPA一对多关系更新列表

我有一个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方法的原因。

是否有不合并但仅更新列表的替代方法?

merge hibernate jpa entitymanager

3
推荐指数
1
解决办法
1万
查看次数

如何将对象从子活动传递到主要活动?

从ActivityA我开始ActivityB.
在ActivityB中,我正在创建一个新的Serializable对象.
创建对象后,我想关闭 ActivityB并将新对象传递给ActivityA.

我该怎么做?

android

2
推荐指数
1
解决办法
1966
查看次数

JPA很多关系没有插入到生成的表中

我的项目中有多对多关系,虽然我能够在我的两个实体表中编写,但关系表却没有写任何内容.

以下是我使用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)

mysql spring many-to-many hibernate jpa

2
推荐指数
1
解决办法
1万
查看次数

如何使用Java获得更多相同密钥的一个值

我在服务器中收到一个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字符串的每个键接收字符串数组?

java json

0
推荐指数
1
解决办法
3520
查看次数

标签 统计

hibernate ×2

jpa ×2

android ×1

entitymanager ×1

java ×1

json ×1

many-to-many ×1

merge ×1

mysql ×1

spring ×1