Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JPA工具的对象关系映射:从实体功能生成表_Java_Sql_Orm_Jpa_Jakarta Ee - Fatal编程技术网

Java 使用JPA工具的对象关系映射:从实体功能生成表

Java 使用JPA工具的对象关系映射:从实体功能生成表,java,sql,orm,jpa,jakarta-ee,Java,Sql,Orm,Jpa,Jakarta Ee,我在eclipse中使用JPA特性“从实体生成表”时遇到了一个问题。 我设法为我的项目做了所有的ORM映射,但只有一个给我带来了麻烦 控制台上说: 内部异常:java.sql.SQLSyntaxErrorException:“OFFER_ID”不是表或VTI“COMMENT”中的列。 错误代码:-1 这是表的外观图像: -一个报价有很多评论 -一个评论属于一个提议 实体的外观如下所示: 实体注释: @Entity public class Comment { // Attributes @

我在eclipse中使用JPA特性“从实体生成表”时遇到了一个问题。 我设法为我的项目做了所有的ORM映射,但只有一个给我带来了麻烦

控制台上说:

内部异常:java.sql.SQLSyntaxErrorException:“OFFER_ID”不是表或VTI“COMMENT”中的列。 错误代码:-1

这是表的外观图像:

-一个报价有很多评论

-一个评论属于一个提议

实体的外观如下所示: 实体注释:

@Entity
public class Comment {
// Attributes
@Id
@GeneratedValue
@Column(nullable = false)
private Long id;
      ...
@ManyToOne
@JoinColumn(name = "OFFER_ID", nullable = false)
private Offer offer;// One comment must belong to one offer
...Getters and setters
实体报价:

@Entity
public class Offer {
   //...Other attributes

    @OneToMany(mappedBy = "offer")
private List<Coupon> coupons;//One offer can have many coupons

@OneToMany(mappedBy = "offer")
private List<Comment> comments; //One offer can have many comments

    ... getters and setters
@实体
公开课{
//…其他属性
@OneToMany(mappedBy=“offer”)
私有列表优惠券;//一个优惠可以有多个优惠券
@OneToMany(mappedBy=“offer”)
私有列表注释;//一个报价可以有多个注释
…能手和二传手
在“课程意向”中,我粘贴了课程意向与另一个名为“优惠券”的课程的关系,正如您所看到的,它与课程评论中的课程意向完全相同

那么问题是什么呢

为什么一种关系被映射而另一种关系没有

为什么数据库注释中新创建的表没有名为OFFER\u ID的列

我该怎么修呢?

我想,这条线

@JoinColumn(name = "OFFER_ID", nullable = false)
给您带来麻烦。因为在OFFER表中确实没有列OFFER\u ID

要解决此问题,请向报价实体添加一个id字段:

@Id(columnName = "OFFER_ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
我可能是语法错误…

可能是您需要persistence.xml中的