Hibernate HQL和一对多查询
我有如下Hibernate域对象: class Player { List<Item> inventory; } class Item { List<Enchantment> enchantments; } class Enchantment { boolean isSuperiorEnchantment; } 职业玩家{ 列出存货清单; } 类项目{ 列出魔法; } 阶级魅力{ 花被着床; }
我有如下Hibernate域对象: class Player { List<Item> inventory; } class Item { List<Enchantment> enchantments; } class Enchantment { boolean isSuperiorEnchantment; } 职业玩家{ 列出存货清单; } 类项目{ 列出魔法; } 阶级魅力{ 花被着床; }
我希望grails服务能够访问域静态方法、查询等 例如,在控制器中,我可以调用 IncomingCall.count() 获取表“IncomingCall”中的记录数 但如果我尝试从服务内部执行此操作,则会出现错误: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'incomingStatusService': Invocation of init method fa
我有一个Validity对象,它包含两个日期:开始日期和结束日期。我有一个为此编写的用户类型,这样我可以简化多个实体的hibernate映射。那很好 现在我想在Validity中添加一组工作日。我能找到的唯一解决方案是更改每个实体,将有效性视为一个组件,并将工作日映射为一个组件 有没有办法用*用户类型来实现这一点 class Validity { Date start; Date end; Set<DayOfWeek> daysOfWeek; } enum DayOfW
我有一个方法,它试图使用HQL在数据库中执行一个相当复杂的查询。我的实体类都使用注释进行映射,并在编译期间发现,而不是显式列出 在以下代码中: List<Message> ms = ((Session) entityManager.getDelegate()) .createCriteria(MessageCRI.class).list(); log.info("Got " + ms.size() + " CRIs"); List&l
我正在开发使用SpringMVC3和Hibernate3的简单应用程序 我需要生成以下格式的ID Month/Year/number(number will increase). 月份和年份值会根据当前日期进行更改。 一年结束后,比如说一个财政年度结束后,序列再次开始,如月/年/数。希望我明白了 例如: 1st Financial Year: Mar/2011/001 Jun/2011/002 Dec/2011/003 Feb/2011/004 ... ... 2nd Financial
JPA中的find方法只接受主键,有没有办法包含Version属性来查找实体。为什么要使用Version属性来查找实体?如果您使用的是代理主键字段(由Hibernate推荐),那么您应该能够仅通过id识别一行 hibernate使用Version字段来确保加载的实体在加载和持久化之间不会发生更改 如果确实要使用id和版本,则需要查询: Query query = session.createQuery("select from MyTable where id = ? and versi
我们项目中的一个需求是criteria builder,其中Hibernate标准非常适合支持该特性 我更喜欢客户端直接构造DetachedCriteria对象并将其发送到服务器端执行,而不是创建间接寻址 考虑到我们的项目正在使用GWT,这意味着DetachedCriteria将在Javascript领域中构建,这是一个明智的想法,还是完全可行?不,这不是一个明智的想法:-) GWT代码应该处理表示逻辑。数据在表示层中的显示方式不一定与数据在数据库中的存储方式相匹配,表示层甚至不应该知道Hibe
我有一个使用名为EXAMPLE的数据库的现有应用程序,它使用一种旧版本的hibernate 用户密码存储为org.jasypt.hibernate.type.EncryptedStringType <typedef name="encryptedString" class="org.jasypt.hibernate.type.EncryptedStringType"> <param name="encryptorRegisteredName">jasyptHibe
我有两个实体:Philicalperson(PP)和JuredicalPerson(JP)。我想创建Phone对象。JP有许多电话,PP有许多电话(一对多关系)。因此,在Phone对象中,我必须为此关系创建两列: class Phone { @JoinColumn(name="ppId",nullable=true) @ManyToOne public PhisicalPerson getPhisicalPerson() {...} @JoinColumn(name="jpId",n
我有两个班级之间的亲子关系 母公司 @Entity @Table(name = "PARENT") public class Parent { @Id @GeneratedValue @Column(name = "ID") private Long id; @Column(name = "NAME") private String name; @Column(name = "WAGES") private BigDecim
我正在使用import.sql将开发数据写入数据库。我使用的是MySQL Server 5.5,我的persistence.xml如下: <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s
我正在使用Roo1.2.1、JPA2和Hibernate3.6连接到MSSQL数据库 我有一个web服务,它接受JSON并将其解析为一个实体;显然,@Version列将是0,因为调用服务的人对此一无所知。当我第一次调用merge()时,它工作正常。对象被正确持久化,版本列被设置为1。但下次我使用相同的数据调用web服务时,它会说该对象已过时,这在技术上是正确的,因为版本始终为0 他们传递给我们的ID保证是唯一的,所以我们使用它作为主键 我想这应该由实体经理负责 所以我的问题是:如果不先从数据库加
我是hibernate和spring框架的初学者。我想使用hibernate模板插入数据库。我的DAO代码: public void save(News transientInstance) { log.debug("saving News instance"); try { save(transientInstance); log.debug("save successful"); } catch (RuntimeException re
值类型没有自己的实体,也没有自己的生命周期。 值类型的另一个属性表示它不能有共享引用。比如说- 如果有一个类用户具有指向address类对象的实例变量address。即使两个用户具有相同的地址,他们也不能指向相同的对象 原因是什么?原因是,如果您有两个用户具有相同的地址实例,则以下内容将修改两个用户的地址,这显然是您不希望看到的: user1.getAddress().setStreet("new street"); 两个地址,即使它们包含相同的值,也表示数据库中两个不同行的单元格,因此它们应
听起来很疯狂,但故事是这样的 背景: 想象一下,我们的数据库是这样的:公司有n名员工,他们有配偶和孩子。员工也有带轮胎的汽车……等等 我们的应用程序同时提供Web和桌面UI。因此,用户希望从多个表加载数据,以便在桌面上脱机工作。例如:将大约1000家公司加载到桌面上进行工作 数据量很大,从数千条记录到数十万条记录不等。但是离线加载的数据并没有那么大,只有几千个 当前架构: 我们正在使用,非常类似于DAO,例如对于每个实体,我们都有一个汇编器。但是对Hibernate的访问非常有限 对于We
我已尝试运行hibernatetool Ant任务,但未成功。帮助。JAR来自我的eclipse(3.7.2)hibernate工具插件(3.4)。我得到一个org.hibernate.HibernateException:“hibernate.dialogue”必须在没有可用连接时设置,尽管已经设置了方言 以下是我的build.xml: <project> <target name="genero"> <path id="toolslib">
我正在为我的项目使用JPA 我的问题是:每当我们使用JPA执行某些查询时,查询都会记录在**JBOSS**的server.log文件中。Am使用JBOSS log4J 但我希望避免在server.log文件中打印查询。 在不更改以下属性的情况下: <property name="hibernate.show_sql" value="true"/> 相反,我尝试: <category name="org.hibernate"> <priority
从NHibernate文档: 由于其固有的性质,使用此生成器的实体无法 通过ISession的SaveOrUpdate()方法保存。相反,你必须 如果要保存或删除对象,请显式指定为NHibernate 通过调用 伊塞翁 好的,那么当这些实体是另一个实体的子实体,并且您想使用级联,这样当父实体被保存时,它的子实体也会被持久化,那么我们如何才能假设我们应该选择保存或更新 我是不是应该把我的总根吹走,开始拯救每个孩子?在框架中涵盖这一点有多难?当我离开垃圾桶时,我不应该关灯,我认为这应该是自动的。这是
我有一个简单的MySQL查询: SELECT * from foo ORDER BY (col1+col2+col3) DESC; col1+col2+col3的结果是一个整数 有没有办法使用hibernate for spring通过DetachedCriteria实现这一点 顺便说一句,我对分离标准缺乏经验 谢谢是的,有一种方法可以使用公式注释。注释将放置在Foo类上。请注意,公式注释接受sql列名,而不接受对象属性名 @Formula("col1+col2+col3") private
我有这样的代码 this.entityManager = AppFactory.instance().getEntityManagerFactory().createEntityManager(); this.hibernateSession = entityManager.unwrap(Session.class); try{ //do some queries using both entityManager and hibernateSession }finally{ this
我正在尝试使用postgis使用hibernate spatial设置一个项目。在HibernateSpatial 4.0-M1教程之后,我首先遇到了一个问题,即找不到依赖项postgis-jdbc-1.5.3.jar。就像这里有人建议的那样,我使用了1.5.2版,教程编译 但是如果我尝试运行它,我会出错。我将hibernate的调试级别设置为调试,并偶然发现以下问题: DEBUG SQL - create table Event ( id int8 not null, date
我用的是JPA。我有一个java实体类,它的specyfic属性是映射到单个列上的类: @Entity MyClass{ @Column(length = 6, nullable = true) @Type(type = "mypackage.MyInnerClassHibernateType") @Mergable private MyInnerClass myProperty; ... } 类MyInnerClass很简单,只包含一个字符串和几
我正在使用Hibernate4.0Final和ojdbc6开发我的web应用程序。除了尝试插入新的父/子关系外,一切正常。首先,这些是实体: @Entity @Table(name = "EMPLOYEE") public class Employee implements Serializable, Cloneable { @Id @SequenceGenerator(name = "seq", sequenceName = "P_SEQ") @GeneratedVal
我有以下问题。在grails中,假设我有以下关系: class Shop { static hasMany = [category: Category] String name; .... (additional shop attributes) } class Category { static belongsTo = [Shop] static hasMany = [item: Item] String name; ... (addi
我有两个主键为emp_id的表。我使用Spring、Hibernate和MVC 域文件: public class Employee_Domain { private static final long serialVersionUID = 1L; private Integer emp_id; private String domain_name; @OneToOne @PrimaryKeyJoinColumn private Employee empDomObj; @Id @C
我在使用hibernate anotations创建简单的多个映射时遇到了一个问题 表页有一个复合主键 +==============+ +================+ +==============+ | PAGE | | PAGE_USER | | USER | +--------------+ 1 0..* +----------------+ 0..* 1
在使用映射和列表时,我在设计两个实体之间的多对多关系时遇到问题 团体 我认为您需要在实体中指定列名。哪一个映射到哪一列。例如: @Column(name="user-name"); private String userName; 对于实体中的每一列和相应字段我开始认为JPA不适合这种映射,将JDO作为替代方案。 @Entity @Table(name = "USER") public class User { @Id private int id; private String u
我正在尝试一些SpringMVCWeb应用程序。我在存储库中编写了查询 @Query("select c.paymentDetailName from customAttribute c where c.entityId=?1 AND c.entityType=?2 and c.paymentDetailName != 'null'") public List<String> getNonNullPaymenyDetaisName(String entityId,Strin
我试图比较命名查询的性能。我知道这一切都取决于实际的查询本身,最后一个问题是它们在运行时是如何配置的。尽管如此,我们仍在努力找出每一个问题的症结所在 我试图将Q分为两部分,并在两个方面进行验证/纠正: 第1部分--Hibernate标准和命名查询的基本工作原理: 标准对参数起作用。 在运行时,查询不需要解析——它有几个搜索参数和“presentinform”参数,如 对结果进行排序,以可滚动方式返回结果等。 尚未阅读/验证此内容,但标准是有效的 字段上的索引(基于字段上设置的参数) 让一切变得更
我想使用一对多字段的条件。 简单介绍一下我的模型,一个项目有多个选项。因为我想获取带有过滤选项的项,并在没有会话的情况下将其传递给JSON解析器,所以在查询时必须获取选项 在给选项添加限制之前,我已经编写了如下代码,这对我来说很好 但当我向选项添加限制时,会发生一个错误,当被调用函数尝试访问该项时,搜索工作正常 Item item = (Item)session.createCriteria(Item.class) .setFetchMode("options"
我试图理解如何从hibernate中获取列表,但我不断遇到错误,例如无法直接在组件上创建对象。虽然我一直在寻找解决方案,但我发现有人提到要创建别名——在我的情况下,这似乎失败了。具体地说,我尝试在复合键的一个元素上查询对象 鉴于以下两类: @Embeddable public class CveReferenceId implements java.io.Serializable { private String refsource; private String refnam
我一直在mySQL中使用blob作为我的一个列的数据类型,Hibernate作为我的框架。但是,当我使用PostgreSQL配置samething时,我无法将数据存储在相同的数据类型中。我在ORM类中添加了@Lob。我仍然无法将数据存储到数据库中。为了以对象的形式存储数据,我应该做什么 @Lob @Column(name = "business_type") private ArrayList<BusinessTypeTo> businessType; @Lob @列(name=“
在我们使用的其中一个模块中,它只有实体,这在不同的模块中使用, 实体模块中hibernate的依赖项在pom.xml中声明如下: <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> <version>1.0.1.Final</v
我有以下JPA查询: SELECT emp FROM Employee emp LEFT JOIN FETCH emp.supervisor WHERE emp.supervisor_id = :id_number 员工数据的结构如下所示: employee_ id, first_name, last_name, supervisor_id 1, jeff, jones, 2 2, bob,
这就是我的问题。我的Spring Boot应用程序使用Hibernate/JPA和ehCache进行二级缓存。我想用Dropwizard/Coda Hale指标来测试ehCache,但我真的不知道怎么做。如果我手动创建缓存实例,那么就很简单了。您只需使用如图所示的装饰器。但由于是Spring/Hibernate,我无法控制缓存。你知道我该怎么做吗 我想我终于明白了。事实证明,在Spring JavaConfig for cacheManager中添加返回Spring类的EhcacheManage
我必须处理oracle、mysql和postgres中保存的大量数据,并将其转换为Cassandra。为了解决这个问题,我想到了一个使用Hadoop MapReduce和hibernate map函数的解决方案。InputFormat for Hibernate的任何地方都有实现吗?请分享一下好吗?通常的模式是使用HDFS将Oracle、MySQL和PostgreSQL数据转储到HDFS中,并在HDFS上运行map/reduce。然后,您可以将输出流式传输到Cassandra,内容如下。谢谢您的
我尝试从很多关联中恢复数据,但我不能,这是我的代码 实体产品: @Entity public class Produit implements Serializable { @Id @Column(name="Produit_ID") @GeneratedValue private Long id; private String dq; private String icForme; private String ich; private String icht; @ManyToMany(c
我有hibernate.hbm2ddl.auto=create drop设置,但在hibernate使用hibernate.import\u files=db/create.SQL生成数据库后,我还基于SQL中的一个表创建了一个视图 下次运行hibernate时,无法删除现有表,因为视图依赖于该表 如何使hibernate删除表级联,以便视图也被删除 这样定义实体似乎没有效果 @Entity @OnDelete(action = OnDeleteAction.CASCADE) @Table(na
对于我(Spring/Hibernate 4.3.11)申请的由会员组织的室内和室外活动的活动俱乐部,我对我的活动表进行了Hibernate查询,该表应返回登录会员是组织者或参与者之一的活动。从概念上讲,它可以被称为“我的活动” HQL看起来像: select a from Activity as a where (a.organizer = :member or :member in elements(a.participants)) order by a.dateFrom asc, a.ti
以下查询: SELECT P FROM Project P WHERE :currentUser IN(P.assignedUsers) 引发以下错误: org.h2.jdbc.JdbcSQLException:SQL语句中的语法错误:“…”; 应为“不存在、存在、相交、选择、来自” 我使用IN运算符是错误的,还是应该以不同的方式进行操作 Project.assignedUsers:是一个包含用户的列表(OneToMany关系)。 并且currentUser参数是有效用户。不能为此使用隐式联接
在我们的项目中,我们使用Hibernate二级缓存和Spring缓存,我们需要能够读取服务器上的缓存内容以进行故障排除。在我们的例子中,这两个缓存都由EhCache支持 我们需要一种方法来读取缓存内容,并将其直接显示在应用程序的UI中(我们无法在客户服务器上安装第三方应用程序,例如EhCache monitor)。在我看来,有两种方法可以做到这一点: 通过Hibernate读取二级缓存的内容,通过Spring读取Spring缓存的内容,而不考虑后备缓存实现(这是首选方法) 读取EhCache中所
我正在使用Grails3.1.4,我希望使用HibernateSearch对我的实体进行全文搜索 在我的build.gradle中,我包括了Hibernate 5和Hibernate搜索 compile "org.hibernate:hibernate-core:5.0.9.Final" compile "org.hibernate:hibernate-ehcache:5.0.9.Final" compile "org.hibernate:hibernate-search-orm" 如果我将@
我有一个面向HikariCP连接池的JPA EntityManagerFactory,可以从中获得EntityManager、会话、连接等。我有没有办法通过编程找到Hikari连接池的最大池大小 从调试程序中,我可以看到Connection对象是HikariProxyConnection的一个实例,它有一个对PoolEntry对象的内部引用,我假设它会链接回知道最大池大小的池。但是PoolEntry不能公开访问 因此,考虑到这一代码: EntityManagerFactory facto
我使用的是spring boot(1.5.9版本)和MySQL,hibernate。在MySQL中,我有两个或更多不同的模式,schema1中有Table1,schema2中有Table2。在我的spring boot应用程序中。属性我连接了MySQL schema1数据库,我需要将schema2.Table2中的值存储在同一端口(3356)。如何在实体中动态更改架构 应用程序属性 spring.datasource.url=jdbc:mysql://localhost:3356/schema1
我有两种型号,即公司和用户一家公司有许多用户。 当我保存公司时,我需要自动保存用户。 JPA有没有办法实现这一目标 以下是我的模型: //公司模式 @Entity public class Company { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @NotNull @Size(min = 4, max = 100) private String
我正在使用hibernate,我已经从hibernate 5.2.x更新到hibernate 5.3.1,现在我在运行时出现了这个错误 java.lang.NoClassDefFoundError:org/hibernate/cache/spi/TransactionalDataRegion在hibernate 5.3.1中 哪个依赖项是org/hibernate/cache/spi/TransactionalDataRegion?hibernate-core-5.3.1.Final.jar &
我们有很多java应用程序,并且正在尝试在Kotlin中实现我们的第一个应用程序。问题是:初始化简单hibernate模型属性的最佳方法是什么 让我们以Java中的以下示例为例: @Entity @Table(name = "Session_Ids") public class SessionId() { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) protected Long id; @Co
我正在spring boot应用程序的hibernate中设置默认模式,如下所示: properties.put(""hibernate.default_schema, "myschema"); 我必须在SQL中重新放置模式吗 select col1, col2 from myschema.table 如果您在Hibernate配置的数据源创建中进行了配置,则应该能够访问架构 select col1, col2 from {h-schema}table;
我试图找出集成Hibernate和Spring数据JPA的新机制。我遵循上提供的示例,但没有任何效果。 进一步的研究让我想起了Juergen Hoeller的一句话: […]这是一个很好的开端:在Hibernate 5.2和5.3中,LocalSessionFactoryBean和HibernateTransactionManager在许多场景中作为LocalContainerEntityManagerFactoryBean和JpaTransactionManager的99%兼容替代品,允许与S
我想实现一个查询来获取endDate为null的实体,为此我使用indexNullAs,因为null值没有索引 @Field(analyze = Analyze.NO, indexNullAs = Field.DEFAULT_NULL_TOKEN) @DateBridge(resolution = Resolution.DAY) private Date endDate; 但是我有下面的错误 HSEARCH000325:字段“endDate”的“indexNullAs”属性,带有 值“null