JPA отношения ManyToMany с дополнительными параметрами - PullRequest
0 голосов
/ 05 июня 2018

Я хочу установить JPA-связь ManyToMany с дополнительными параметрами в таблице отношений и другим первичным ключом, и я все еще получаю сообщение об ошибке ниже: Может кто-нибудь помочь мне, пожалуйста?Спасибо

В вашем синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса, который следует использовать для 'порядка INT (11), не равного null auto_increment, idPoint INT (11), idPolygo' в строке 2

    @Entity
    @Table(name = "Point")
    public class Point implements Serializable{
               @Id
               @GeneratedValue(strategy=GenerationType.AUTO)
               @Column(name = "idPoint", columnDefinition = "INT(11)", nullable = false)
               private int idPoint;

               @Column(name = "lat", columnDefinition = "DOUBLE(10,8) ", nullable = true)
               private double lat;

               @Column(name = "lng", columnDefinition = "DOUBLE(10,8)", nullable = true)
               private double lng;
                //relationship OneToMany with table PolygonHasPoint
                @OneToMany(mappedBy="point")
                private Set<PolygonHasPoint> polygonHasPoint;
        }
    @Entity
    @Table(name = "Polygon")
    public class Polygon implements Serializable{
            //primary key : idPolygon
            @Id
            @GeneratedValue(strategy=GenerationType.AUTO)
            @Column(name = "idPolygon", columnDefinition = "INT(11)", nullable = false)
            private int idPolygon;

            //relationship OneToMany with table PolygonHasPoint
            @OneToMany(mappedBy="polygon")
            private Set<PolygonHasPoint> polygonHasPoint;
   }

   @Entity(name="Point_Polygon")
   @Table(name = "Polygon_Point")
   public class PolygonHasPoint implements Serializable{

        @Id
        @GeneratedValue(strategy=GenerationType.IDENTITY)
        @Column(name = "order", columnDefinition = "INT(11)", nullable = false)
        private int order;


        @ManyToOne
        @JoinColumn(name = "idPoint", columnDefinition = "INT(11)", nullable = true)
        private Point point;

        @ManyToOne
        @JoinColumn(name = "idPolygon", columnDefinition = "INT(11)", nullable = true)
        private Polygon polygon;
}

1 Ответ

0 голосов
/ 05 июня 2018

'order' является ограниченным ключевым словом в большинстве RDMBS.Попробуйте "position" или "sort".

Вы можете попробовать определить с помощью обратных кавычек, если вы действительно хотите остаться с текущим именем:

@Column(name = "`order`", columnDefinition = "INT(11)", nullable = false)
private int order;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...