Persist
предназначен для новых объектов переходного процесса, и он терпит неудачу, если идентификатор уже назначен. Вероятно, вы должны называть saveOrUpdate
вместо persist
.
В качестве альтернативы вы можете проверить, содержится ли объект в вашем диспетчере сущностей, и если это так
entityManager.merge(yourObject);
, else
entityManager.persist(yourObject);
Вам нужно использовать Board.prototype.drawBoard = function() {....
. Затем, когда вы вызываете drawBoard()
, вы называете это так: board.drawBoard()
, потому что это метод объекта board
.
function Board(width, height) {
this.width = width;
this.height = height;
this.chartBoard = [];
for (var i = 0; i < this.width; i++) {
const row = [];
this.chartBoard.push(row);
for (var j = 0; j < this.height; j++) {
const col = {};
row.push(col);
}
}
}
Board.prototype.drawBoard = function() {
for (var i = 0; i < this.width; i++) {
for (var j = 0; j < this.height; j++) {
ctx.beginPath();
ctx.strokeStyle = "black";
ctx.strokeRect(j * 80, i * 80, 80, 80);
ctx.closePath();
}
}
};
let board = new Board(10, 10);
const canvas = document.getElementById("board");
const ctx = canvas.getContext("2d");
board.drawBoard();
* {
padding: 0;
border: 0;
}
body{
background-color: #181818;
}
#board {
display: block;
background-color: white;
margin: 0 auto;
margin-top: 100px;
}
<canvas id="board" width="800" height="800"></canvas>