有没有办法声明实体类的字段不是持久属性?
Posted
技术标签:
【中文标题】有没有办法声明实体类的字段不是持久属性?【英文标题】:Is there any way to state that a field of an entity class is not a persistent attribute? 【发布时间】:2010-01-05 12:07:20 【问题描述】:问题在标题中。
一些解释:我无法实现必要的映射。但是我可以使用 DAO 中的查询来获取所有必要的数据。所以,我想在 DAO 的 findAll() 方法中手动将该数据插入到我的实体中。
但是 JPA 将所有实体的字段视为持久属性,并将它们添加到生成的 sql 查询中。当然,我得到一个无法执行查询的异常。所以,我需要说明“这个字段将手动设置,跳过它”。
附:这个解决方案对我来说听起来很丑,但我找不到更好的解决方案,因为我有“不可变”的数据库架构,我需要将它映射到我的实体上。
【问题讨论】:
【参考方案1】:使用@Transient annotation
【讨论】:
【参考方案2】:这不是我的想法,可能是错误的,但是......
没有@transient
注释吗?或者只是 transient
Java 修饰符?
我认为 JPA 不会弄乱这样标记的字段。
【讨论】:
+1 用于提及transient
关键字,这当然是 Hibernate 的荣誉,我相信 JPA。在真正合适时使用低级语言功能而不是注释是很有意义的。以上是关于有没有办法声明实体类的字段不是持久属性?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据数据库的字段动态创建实体类? 用java啊~ 最好给点源码和实例
Python中类的声明,使用,属性,实例属性,计算属性及继承,重写