小编Ama*_*eep的帖子

Hibernate单表继承

我有两个实体BillingAddress和ShippingAddress映射到TABLE ADDRESS有鉴别器TYPE列.

@Entity
@Table(name = "address")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "TYPE",discriminatorType = DiscriminatorType.INTEGER)
@DiscriminatorValue(value = "1")
@NamedQueries({
    @NamedQuery(name = "Shippingaddress.findAll", query = "SELECT s FROM Shippingaddress s")})
public class Shippingaddress  implements Serializable{}

@Entity
@Table(name = "address")
@DiscriminatorValue(value = "2")
@NamedQueries({
    @NamedQuery(name = "Billingaddress.findAll", query = "SELECT b FROM Billingaddress b")})
public class Billingaddress extends Shippingaddress implements Serializable {}
Run Code Online (Sandbox Code Playgroud)

我能够在具有不同TYPE值的DB中成功保存/更新两种地址类型.

我面临的问题是当我查询ADDRESS表时,如下所示:

Session session=getCurrentSession();
        Query query=session.createQuery("from Billingaddress where userId.userId=:userId");
        query.setLong("userId", userId);
        billingaddress=(Billingaddress)query.uniqueResult();
Run Code Online (Sandbox Code Playgroud)

这工作正常,但查询ShippingAddress会抛出NonUniqueResult异常,即我在结果中同时获得Shippingaddress和Billingaddress.请让我知道,我应该做些什么不同的事情.

Session session=getCurrentSession();
        Query query=session.createQuery("from Shippingaddress where userId.userId=:userId");
        query.setLong("userId", …
Run Code Online (Sandbox Code Playgroud)

java hibernate

5
推荐指数
1
解决办法
1744
查看次数

Kotlin 中的嵌套运行块

我遇到了嵌套运行块的情况。我想this从内部运行块访问外部运行块。我按照 IntelliJ 提示尝试了这个,但在(this@run as String).equals(""). 有没有办法实现这一目标?

示例代码:

fun main(args: Array<String>) {
    "".run  {
        1.0.run {
            (this@run as String).equals("")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

kotlin

2
推荐指数
1
解决办法
733
查看次数

标签 统计

hibernate ×1

java ×1

kotlin ×1