【发布时间】:2017-10-28 05:18:45
【问题描述】:
[简介]
- 数据库:Apache Derby
- JPA:EclipseLink
嘿,我正在寻找答案,但找不到任何答案,所以就这样吧。我正在编写简单的数独应用程序,我想添加的下一个功能是将我的数独板保存在数据库中,并在需要时检索它们。这是我的主要两个类的 UML 图: SudokuBoard.uml 我的两个实体的结构如下:
数独板实体:
@Entity
public class SudokuBoard implements Serializable, Cloneable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private static final long serialVersionUID = 1L;
@OneToMany(cascade=CascadeType.PERSIST)
private ArrayList<SudokuField> board;
public ArrayList<SudokuField> board() {
return board;
}
public void setBoard(ArrayList<SudokuField> board) {
this.board= board;
}
public Long etId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
SudokuField 实体:
@Entity
public class SudokuField implements Serializable, Comparable<SudokuField>,
Cloneable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Transient
private static final Logger logger =
LoggerFactory.getLogger(SudokuField.class);
@Transient
private static final long serialVersionUID = 1L;
@Basic(fetch = FetchType.EAGER)
@Column(name = "Value")
private int value;
@ManyToOne
@JoinColumn(name = "board_fk", referencedColumnName = "id")
private SudokuBoard sudokuBoard;
DAO 中的执行:
@Override
public void write(SudokuBoard obj, String path) throws
FileNotFoundException, IOException {
entityManager.getTransaction().begin();
entityManager.persist(obj);
entityManager.getTransaction().commit();
}
[问题]
- 我想知道是否有可能不使用自动生成的密钥,而是在 SudokuBoard 实体中使用字符串作为 PK。在我的应用程序中,我实现了绑定,因此我想保存 SudokuBoard 的同一个对象,该对象随着时间的推移以不同的名称发生变化。
希望我清楚地表达了我的意图。感谢您提供任何帮助和提示。
【问题讨论】:
标签: java jpa eclipselink derby