我有一个简单的def dropdowngrid(self, ...):
self.menu.grid(...)
self.pack()
类
@Entity
还有另外一个,应该持有外键
@Entity
@Table(name = "user")
@Getter
class User {
@Id
@GeneratedValue
private final Integer userID;
private final String username;
}
重点是-@Getter
@Builder
@Entity
class Task {
@Id
@GeneratedValue
private final Integer taskID;
private final String title;
private final String details;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinTable(name = "user", joinColumns = {@JoinColumn(name = "userID")})
private final Integer userID;
}
和User
类在单独的程序包中,并且两者都是程序包范围的。表示我不能简单地写
Task
这就是为什么我得到
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinTable(name = "user", joinColumns = {@JoinColumn(name = "userID")})
private final User user;
是否有解决方法来实现我所需要的?在单独的程序包中并在程序包范围内的2个实体之间创建关系?
答案 0 :(得分:0)
您可以尝试以下替代方法:
User
的访问器更改为public
。但是,如果您询问这可能是因为您没有源代码而无法更改它。User
.class文件以获取源。如果用户不是那么复杂,您可以尝试一下。然后,将访问器更改为public
。User
类的版本,并将其用于持久性,将另一个用于其提供的功能。userID
类中的Task
映射为整数,并通过代码确保您永远不会分配不是有效用户ID的值:@Column private Integer userID;
。如果使用JPA生成表,则需要在数据库中手动添加外键,以确保数据的完整性。我希望其中一些解决方案可以有所帮助。