Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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 我应该在这里使用什么注释?@OneToMany还是@OneToOne?_Java_Jpa_Java Ee 5 - Fatal编程技术网

Java 我应该在这里使用什么注释?@OneToMany还是@OneToOne?

Java 我应该在这里使用什么注释?@OneToMany还是@OneToOne?,java,jpa,java-ee-5,Java,Jpa,Java Ee 5,所以这个类描述了一个特定地点的特定股票,它可以随时间而改变。就像一个地点可以包含另一个股票,但是在给定的时间,一个地点只有一个股票,而那个地点只包含那个股票。我很难定义我应该使用的注释,有人能帮忙吗 就像一个地方可以包含另一只股票,但在给定的时间,一个地方只有一只股票,而那个地方只包含那个股票 你有点不清楚,但如果我没弄错的话,你说的是一个特定的地方只能有一只股票的情况吗? 一个位置可以包含另一个库存,但只有在原始库存从该位置移除之后? 我假设StockPlace也是一种实体,拥有单个股票的当前

所以这个类描述了一个特定地点的特定股票,它可以随时间而改变。就像一个地点可以包含另一个股票,但是在给定的时间,一个地点只有一个股票,而那个地点只包含那个股票。我很难定义我应该使用的注释,有人能帮忙吗

就像一个地方可以包含另一只股票,但在给定的时间,一个地方只有一只股票,而那个地方只包含那个股票

你有点不清楚,但如果我没弄错的话,你说的是一个特定的地方只能有一只股票的情况吗?
一个位置可以包含另一个库存,但只有在原始库存从该位置移除之后?
我假设StockPlace也是一种实体,拥有单个股票的当前位置

如果是这样,那么对这两个字段都使用
@OneToOne
,因为它定义了类之间的关系,即Place和Stock只能存在StockPlace的一行/记录,反之亦然。也就是说,在保存StockPlace时,必须使用唯一的stock和惟一的place。在这里,如果您尝试使用已持久化的位置或股票持久化该股票。你会得到一个例外

字段上的
@OneToMany
注释定义了使用该注释声明字段的对象可以将多个记录映射到该字段的位置之间的关系。它主要(如果不仅仅是)指类可以有一个映射项的集合。
例如,由于一个购物车可以包含多个项目,因此它将
列表
映射为
@OneToMany
,或者一篇文章可以有多个注释

对于可能有多个股票位于同一地点的情况,则应使用
@ManyToOne
注释地点字段,因为它表明可以将单个地点记录分配给多个股票地点记录(因此多个股票可以位于单个地点)

我想,我真的没有得到这样的用例;P因为在两种情况下,如果一个地点可以同时包含多个和单个股票,则该地点可以在股票类别内用
OneToOne
声明为唯一的股票/地点组合,或者
ManyToOne
声明为单个地点可以同时包含多个股票

看看这两篇SO帖子:



对于所有这三个注释,有一些不同的解释和用法细节。

类stock类似于刚到达的stock,例如import。然后我们把它放在一个地方。我们不能把不同的股票放在同一个地方,所以我们应该等到所有的股票都清仓。是的,很多人。谢谢你抽出时间
class StockPlace{
    private Stock stock;
    private Place place;
}