at com.Quz.toString(Quz.java:120)
at org.hibernate.type.descriptor.java.AbstractTypeDescriptor.extractLoggableRepresentation(AbstractTypeDescriptor.java:109)
at org.hibernate.type.AbstractStandardBasicType.toLoggableString(AbstractStandardBasicType.java:291)
at org.hibernate.pretty.MessageHelper.collectionInfoString(MessageHelper.java:307)
at org.hibernate.loader.Loader.loadCollection(Loader.java:2158)
at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:62)
at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:627)
at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1863)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:369)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:111)
at org.hibernate.collection.PersistentBag.toString(PersistentBag.java:506)
at java.lang.String.valueOf(String.java:2854)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at com.Quz.toString(Quz.java:120)
它附加在单向@manytomany上,如下所示:
@Entity
@Table(uniqueConstraints = @UniqueConstraint(columnNames = { "fooId", "barId" }))
public class Quz {
@Id
@GeneratedValue
protected Long id;
protected String fooId;
@ManyToOne
@JoinColumn(name="barId")
protected Bar bar;
@ManyToMany
@JoinTable(name = "quz_fum", joinColumns = {
@JoinColumn(name = "fooId", referencedColumnName = "fooId"),
@JoinColumn(name = "barId", referencedColumnName = "barId") },
inverseJoinColumns = {
@JoinColumn(name = "fumId", referencedColumnName = "fumId") })
protected List<Fum> fums;
}
当joinColumns由主键组成时(hibernate只记录它的id),所以我认为问题是由我的JoinTable中有非主列引起的(而hibernate试图记录整个对象)。
这是一个bug还是禁止有这样的连接?
toString methodz中没有错误。我敢肯定。首先,我们可以在堆栈中,在递归调用之间没有任何中间,其他hibernate。toString调用hibernate调用相同的toString。第二,当关闭hibernate日志时,toString工作得很好。当我打开它时,异常就出现了。第三,我已经调试了足够长的时间来定位这个问题:hibernate使用特定的ManyToMany设置调用对象本身的toString而不是它的id。
我最初的问题是关于那个设置:允许吗?
您似乎有以下类似的东西:
class Foo {
Collection<Bar> bars;
@Override
public String toString() {
return "Foo{" + "bars=" + bars + '}';
}
}
class Bar {
Collection<Foo> foos;
@Override
public String toString() {
return "Bar{" + "foos=" + foos + '}';
}
}
现在,当我调用bar.tostring
或foo.tostring
时,我进入了一个无限循环:
bar.toString
foos.toString
foo.toString
bars.toString
bar.toString
您不能使用这样的tostring
方法--您需要决定一方打印集合而另一方不这样做。
应用引擎v2目前提供了四种日志收集方案可供选择 实时日志 日志下载 Splunk日志分析 FDS导入日志 实时日志 实时日志是最常用的方式,可以在应用右上角点击“日志”进入。 实时日志目前支持从当前时间查看和从过去时间查看。 当前时间查看 从点连接按钮的时刻开始查看日志,提供暂停,过滤功能 过去时间查看 可以选择过去的时间点查看,最多支持60分钟。 注意:三个区域的总和才是过去该时间段应用的完整日
我正在开发一个应用程序,使用我的另一个项目作为maven依赖项。 期望 我希望我的依赖项使用自己的回退.xml登录自己的文件。我希望应用程序使用自己的 logback.xml文件登录到控制台和一个与依赖项不同的文件。我希望这两个文件都位于应用程序jar附近的日志文件夹中。 它现在做什么 但是目前,应用程序和依赖项都使用应用程序的logback.xml,所有内容都记录在控制台和同一个文件中。 我该如
在一个项目中,我有以下实体:具有连接到关键字的模板部分的模板。这两种关系都是。一些代码: 然后,我尝试使用给定ID查找与某个模板相关的关键字。我使用使用此谓词执行此操作: 由于某些原因,谓词处理得根本不好。尝试调用方法时出现此错误: 组织.hibernate.hql.internal.ast.QuerySyntax 异常: 模板实体部分目录未映射 [选择关键字身份\nfrom mypackage.
我有一个要求,因为我需要在Mulesoft Flow中关闭日志记录。我需要在记录器级别,如果可能的话,在Http连接器级别。尝试将INFO更改为关闭log4j2.xml文件,但没有运气。我需要更新log4j2.xml文件中的哪些参数才能使其工作。现在我已经做了异步记录器。 提前感谢
请帮忙,我已经三天没有成功了:/ 我正在为Google Cloud Run部署一些服务,并希望在请求通过服务时跟踪请求并将日志与这些请求关联起来。StackDriver在“StackDriver跟踪”中提供了一个很好的平台。我在用谷歌。云我的asp中的诊断库。net核心web api。我能够成功地跟踪请求,启动跨度,并在StackDriver跟踪时间线中查看嵌套在跟踪中的跨度。然而,如何让我的日志
问题内容: 我有一些与关系有关的实体: 和 使用某些模型执行保存模型时,一切正常。表存储这些实体的所有键。但是,使用驱动程序保存模型时,表不会更改。我认为映射存在问题。 问题答案: 那是预期的行为。在双向多对多关联中,一侧必须是反侧。在您的情况下,这是一面,因为它包含: 拥有关系的字段。除非关系是单向的,否则为必需。 这意味着是关联的所有者,并且Hibernate仅在维护关联时检查该侧。