不幸的是,在这种情况下,其他实体名称,模式名称不起作用。我不明白这个解释的描述。这是什么意思?jpa必须为序号字段定义非只读映射
异常[的EclipseLink-93](Eclipse持久服务 -
2.6.4.qualifier):org.eclipse.persistence.exceptions.DescriptorException异常 说明:表[驱动]不存在于这个描述符。 描述符:RelationalDescriptor(com.spring_test2.jpa.models.Tickets - > [DatabaseTable(门票)])
异常[的EclipseLink-93](Eclipse持久服务 - 2.6.4.qualifier):有机eclipse.persistence.exceptions.DescriptorException异常 描述:表[票据]不存在于此描述符中。 描述符:RelationalDescriptor(com.spring_test2.jpa.models.Drivers - > [DatabaseTable(驱动程序)])
异常[的EclipseLink-41](Eclipse持久服务 - 2.6.4.qualifier):有机eclipse.persistence.exceptions.DescriptorException异常 描述:必须为数字字段的序列 定义非只读映射。描述符: RelationalDescriptor(com.spring_test2.jpa.models.Tickets - > [DatabaseTable(门票)])
异常[的EclipseLink-41](Eclipse持久服务 - 2.6.4.qualifier):有机eclipse.persistence.exceptions.DescriptorException异常 描述:必须为数字字段的序列 定义非只读映射。描述: RelationalDescriptor(com.spring_test2.jpa.models.Drivers - > [DatabaseTable(司机)])在我的实体我找不到
没有什么特殊的,他们深受我的测试。
门票
@Entity
@Table(name = "tickets")
public class Tickets {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "from_point")
@Size(min = 0, max = 255)
private String from;
@Column(name = "throw")
@Size(min = 0, max = 255)
private String throwp; //throw point
@Column(name = "to_point")
@Size(min = 0, max = 255)
private String to;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "city_id")
private Cities city;
@Column(name = "hum")
private Integer hum;
@Column(name = "cost")
private Integer cost;
@Column(name = "phone")
private Integer phone;
@Column(name = "date", nullable = false, insertable = false, updatable = false, columnDefinition = "Datetime DEFAULT CURRENT_TIMESTAMP")
@Temporal(TemporalType.TIMESTAMP)
private Date date;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "ticket_status_id")
private TicketStatuses ticketStatus;
@OneToMany(mappedBy = "driver", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<TicketsDrivers> driver;
setters/getters
驱动程序
@Entity
@Table(name = "drivers")
public class Drivers {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "role_id")
private Roles role;
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "profile_id")
private Profiles profile;
@Column(name = "name")
@Size(min = 0, max = 255)
private String name;
@Column(name = "phone")
@Size(min = 0, max = 255)
private String phone;
@Column(name = "mail")
@Size(min = 0, max = 255)
private String mail;
@Column(name = "login")
@Size(min = 0, max = 32)
private String login;
@Column(name = "password")
@Size(min = 0, max = 32)
private String password;
@OneToMany(mappedBy = "ticket", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<TicketsDrivers> tickets;
setters/getters
而且TicketsDrivers
@Entity
@Table(name = "tickets_drivers")
public class TicketsDrivers {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "driver_id")
private Drivers driver;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "ticket_id")
private Tickets ticket;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "ticket_status_id")
private TicketStatuses ticket_status;
setters/getters
的persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="Services" transaction-type="RESOURCE_LOCAL">
<description>
Maven Test JPA
</description>
<!--provider>org.hibernate.ejb.HibernatePersistence</provider-->
<class>com.spring_test2.jpa.models.Test</class>
<class>com.spring_test2.jpa.models.Cities</class>
<class>com.spring_test2.jpa.models.Countries</class>
<class>com.spring_test2.jpa.models.Admins</class>
<class>com.spring_test2.jpa.models.dictionaries.TicketStatuses</class>
<class>com.spring_test2.jpa.models.dictionaries.StaticPages</class>
<class>com.spring_test2.jpa.models.dictionaries.Sources</class>
<class>com.spring_test2.jpa.models.dictionaries.Roles</class>
<class>com.spring_test2.jpa.models.dictionaries.ProfileTypes</class>
<class>com.spring_test2.jpa.models.dictionaries.Partners</class>
<class>com.spring_test2.jpa.models.dictionaries.Newsletter</class>
<class>com.spring_test2.jpa.models.dictionaries.DriverStatuses</class>
<class>com.spring_test2.jpa.models.Auto</class>
<class>com.spring_test2.jpa.models.Drivers</class>
<class>com.spring_test2.jpa.models.Models</class>
<class>com.spring_test2.jpa.models.Profiles</class>
<class>com.spring_test2.jpa.models.Tickets</class>
<class>com.spring_test2.jpa.models.TicketsDrivers</class>
<class>com.spring_test2.jpa.models.UndergroundLines</class>
<class>com.spring_test2.jpa.models.UndergroundStations</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/spring_test2" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="pwd" />
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>
也将hibernate.hbm2ddl.auto从“更新”更改为“创建”例如不成功
P.S.
门票后面的@ManyToOne行&司机实体被评论为免除。但在这种情况下什么是错的。
在这个项目中,我有票< - > tickets_drivers < - >司机多对多的连接,我没有使用@ManyToMany,因为谷歌说,如果我有一个或多个额外的字段在连接表我必须使用@OneToMany两次。它可能是这个错误的原因?!
为什么在错误与EclipseLink(一个不同的JPA提供程序)相关时为Hibernate标记问题? –
是的,我已经删除它 – Nesquik27
,为什么不删除所有的Hibernate配置和关于改变一些休眠属性的线?哦,和openJPA属性!然后将其标记为Eclipselink! –