2010-08-25 91 views
0

我为能够使用JPA时,我只映射到一个表使实体类行只读在JPA

我们得到的值时,我已经映射相关表出现错误

Only one may be defined as writable, all others must be specified read-only. 
    Mapping: org.eclipse.persistence.mappings.OneToOneMapping[userId1] 

我米使用[的EclipseLink-0](Eclipse持久服务 - 2.0.1.v20100213-r6600)

在子表我有此代码

@OneToMany(cascade = CascadeType.ALL, mappedBy = "albumId") 
private Collection<Images> imagesCollection; 
@JoinColumn(name = "user_id", referencedColumnName = "User_ID") 
@ManyToOne(optional = false) 
private Roleuser userId; 
@JoinColumn(name = "album_image", referencedColumnName = "image_id") 
@ManyToOne 
private Images albumImage; 
@JoinColumn(name = "album_image", referencedColumnName = "image_id") 
@ManyToOne 
private Images albumImage1; 
@JoinColumn(name = "user_id", referencedColumnName = "User_ID") 
@ManyToOne(optional = false) 
private Roleuser userId1; 
之一

在此代码中我必须做什么更改才能使字段为只读?

还是有没有更好的解决方法不使这些领域只读?

回答

1

您有两个使用相同外键字段的ManyToOne关系。这没有意义,它们会是同一个对象?

@JoinColumn(name = "album_image", referencedColumnName = "image_id") 
@ManyToOne 
private Images albumImage; 
@JoinColumn(name = "album_image", referencedColumnName = "image_id") 
@ManyToOne 
private Images albumImage1; 

您应该有两个不同的外键字段,即albumImage和albumImage1。

+0

去openJPA没有问题,所以我认为...可能是后来绕过...以及我有一个更多的问题... http://stackoverflow.com/questions/3567438/select-from-两个表使用jpql – 2010-08-25 15:19:58

+0

我不太了解JPA,但我使用netbeans生成的实体类,它们与openJPA相同... – 2010-08-25 15:21:59

+0

netbeans生成类...以及为什么netbeans生成两个单一关系的引用...我应该为NetBeans提供一个错误... – 2010-08-25 20:12:07