jjzjj

java - @IdClass 与非原始@Id

我正在尝试将复合主键添加到类中,但遇到了一些麻烦。这是类。classUser{privatelongid;...}classToken{privateUseruser;privateStringseries;...}我正在使用orm.xml来映射类,因为它们实际上是我不想依赖于JPA的更高级别API的一部分-它有许多实现。这里是:......最后,为了使一切正常,我创建了TokenPK类,它看起来像这样:publicclassTokenPKimplementsSerializable{privateStringseries;privateUseruser;publicTokenPK()

java - 非法参数异常 : expecting IdClass mapping

在部署我的应用程序期间,我遇到了那个异常。我的应用程序中有很多类,但我不知道必须在哪里放置@IdClass以及这个异常到底意味着什么。我正在使用Hibernate4.1和JBossAS7.112:10:23,761INFO[org.hibernate.engine.jdbc.internal.LobCreatorBuilder](MSCservicethread1-5)HHH000424:DisablingcontextualLOBcreationascreateClob()methodthrewerror:java.lang.reflect.InvocationTargetExcep

java - 无法使用@IdClass 转换实体中的请求元素

我有以下设置:@Entity@IdClass(MemberAttributePk.class)publicclassMemberAttribute{@Id@ManyToOne@JoinColumn(name="member_id")protectedMembermember;@IdprotectedStringname;privateStringvalue;publicMemberAttribute(){}//get&set}和id类:publicclassMemberAttributePkimplementsSerializable{protectedMembermember;pro

java - @IdClass 使用 JPA 和 Hibernate 生成 'Identifier of an Instance was Altered'

对于使用不区分大小写的数据库模式的JPA实体模型,当我使用@IdClass注释时,我始终会收到“实例标识符已更改”异常。对于主键为'string'的对象,当数据库中存在一个大小写的字符串,并使用相同的字符串进行查询,仅大小写不同时,就会出现错误。我看过其他SO答案,它们的形式是:a)不要修改主键(我没有)和b)你的equals()/hashCode()实现有缺陷。对于“b”,我尝试使用toLowerCase()和equalsIgnoringCase()但无济于事。[此外,Hibernate代码似乎是直接设置属性,而不是在发生“改变”时调用属性setter。]具体错误如下:Causedb

java - 使用@IdClass 存储具有复合主键的实体,但无法持久化

我的id类如下,publicclassEmployeeIdimplementsSerializable{publicEmployeeId(){}publicEmployeeId(Integerid,Stringcountry){this.id=id;this.country=country;}privateIntegerid;privateStringcountry;@OverridepublicinthashCode(){returnthis.getCountry().hashCode()+getId();}@Overridepublicbooleanequals(Objecto){

java - JPA/Hibernate : What's better for composite primary keys, @IdClass 或 @EmbeddedId 实现,为什么?

这个问题在这里已经有了答案:WhichannotationshouldIuse:@IdClassor@EmbeddedId(7个回答)关闭2年前。对于JPA/Hibernate复合主键、@IdClass或@EmbeddedId实现,什么更好,为什么?这是一个故意天真的问题。我决定使用@EmbeddedId(无论出于何种原因),我觉得我做出了错误的选择。取消引用包含列属性的embeddedId是多余的,并且在编码时很容易出错。还有其他理由支持和/或反对对方吗?这是JPA(规范)的推荐吗? 最佳答案 首先,如果可能,不惜一切代价避免使用

java - JPA/Hibernate : What's better for composite primary keys, @IdClass 或 @EmbeddedId 实现,为什么?

这个问题在这里已经有了答案:WhichannotationshouldIuse:@IdClassor@EmbeddedId(7个回答)关闭2年前。对于JPA/Hibernate复合主键、@IdClass或@EmbeddedId实现,什么更好,为什么?这是一个故意天真的问题。我决定使用@EmbeddedId(无论出于何种原因),我觉得我做出了错误的选择。取消引用包含列属性的embeddedId是多余的,并且在编码时很容易出错。还有其他理由支持和/或反对对方吗?这是JPA(规范)的推荐吗? 最佳答案 首先,如果可能,不惜一切代价避免使用

java.lang.IllegalArgumentException : expecting IdClass mapping

我为我的实体Employee配置了复合主键,如下Employee.java:@Entity@Table(name="employee")@Proxy(lazy=false)@IdClass(EmployeeId.class)publicclassEmployeeimplementsSerializable{privatestaticfinallongserialVersionUID=1L;privateEmployeeIdemployeeId;privatePersonperson;privateBranchbranch;privatebooleanisActive;publicEmp

java - 我应该使用哪个注释 : @IdClass or @EmbeddedId

JPA(JavaPersistenceAPI)规范有2种不同的方式来指定实体复合键:@IdClass和@EmbeddedId。我在我的映射实体上使用了这两个注解,但对于那些不太熟悉JPA的人来说,这真是一团糟。我只想采用一种方式来指定复合键。哪一个真的是最好的?为什么? 最佳答案 我认为@EmbeddedId可能更冗长,因为使用@IdClass您无法使用任何字段访问运算符访问整个主键对象。使用@EmbeddedId你可以这样做:@EmbeddableclassEmployeeId{name,dataOfBirth}@Entitycl