小编Dra*_*ken的帖子

该属性不能配置为导航属性

我正在尝试实现这样的域模型: 我的模特

这是一个实体框架mvc应用程序.该模型的代码如下所示:

public class Login
{
    [Key]
    public int LoginID { get; set; }

    public virtual Therapist Therapist { get; set; }

    public virtual Patient Patient { get; set; }
}

public class Patient
{
    [Key]
    [ForeignKey("Login")]
    [Display(Name = "No.")]
    public int PatientId { get; set; }

    [ForeignKey("Therapist")]
    public int TherapistId { get; set; }

    [ForeignKey("Therapist")]
    public int TherapistId{ get; set; }

    public virtual Therapist Therapist { get; set; }

    public virtual Login Login { get; set; }
}

public …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

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

当项目添加到桌面视图时,JavaFX滚动到tableview的底部

奇怪的是,我无法弄清楚如何解决这个问题.我有一个tableview,当一个可观察列表的监听器发现有变化时,它会被填充.所以这是代码:

userController.getAuthImpl().listOfMessages.addListener(new ListChangeListener<Message>() {
    @Override
    public void onChanged(ListChangeListener.Change<? extends Message> c) {
        addMessageToTableView(tblvwBottomAdminNotifications, c.getList());
    }
});


public void addMessageToTableView(TableView<Message> tblvw, ObservableList<? extends Message> observableList){
    tblvw.getItems().clear();
    for(Message msg: observableList)
        tblvw.getItems().add(msg);
}
public ObservableList<Message> listOfMessages = FXCollections.observableArrayList(_listOfMessages);
Run Code Online (Sandbox Code Playgroud)

这样工作正常,一旦将项添加到listOfMessages,表就会自动更新.我现在要做的一点是,在更新时将列表视图滚动到底部.我尝试将以下行添加到addMessageToTableView方法:

tblvw.scrollTo(tblvw.getItems().size()-1);
Run Code Online (Sandbox Code Playgroud)

并且还尝试向tableview本身添加一个更改侦听器,如下所示:

tblvwBottomAdminNotifications.getItems().addListener(new ListChangeListener<Message>(){

    @Override
    public void onChanged(javafx.collections.ListChangeListener.Change<? extends Message> c) {
        tblvwBottomAdminNotifications.scrollTo(c.getList().size()-1);

    }

});
Run Code Online (Sandbox Code Playgroud)

但是两个错误都以同样的方式出现以下消息:

线程"RMI TCP连接(1)-192.168.56.1"中的异常java.lang.IllegalStateException:不在FX应用程序线程上; currentThread = RMI TCP连接(1)-192.168.56.1

我的谷歌技能是JavaFX抱怨我从一个单独的线程访问tableview.我可以理解,但是如何以这样的方式访问它:当tableview确实添加了一个新项目时,它会向下滚动到它?

如果您需要更多信息,请与我们联系.

java javafx

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

自定义异常类不会捕获异常

我有一个自定义异常类,它扩展了Exception类(如下所示).

public class SomeABCException extends Exception
Run Code Online (Sandbox Code Playgroud)

但是,当我SomeABCException在之前Exception在catch块中使用的所有位置使用它时,即使在扩展Exception类本身之后它也不会捕获异常.

例如,如果父/调用方法具有如下的catch块

catch (Exception e) {
    TODO something;
}
Run Code Online (Sandbox Code Playgroud)

如果我有一个子方法,我正在运行一些数据库查询.

try {
    Some database queries;
} catch (SomeABCException e) {
    throw new SomeABCException (e.getMessage(),"I/O or SQL_EXCEPTION");
}
Run Code Online (Sandbox Code Playgroud)

这里如果sql连接失败,catch就无法捕获异常,而是被父/调用者catch块捕获,该块使用System.Exception来捕获它.

在调试期间,它不会转到child方法的catch块中.

请解释一下,我不明白.

java exception-handling exception

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

使用GSON的Java Clone对象

我必须多次克隆一个对象.我的对象是不可序列化的.我正在使用以下功能

@SuppressWarnings("unchecked")
public static  T cloneThroughJson(T t) {
   Gson gson = new Gson();
   String json = gson.toJson(t);
   return (T) gson.fromJson(json, t.getClass());
}
// ...
Object cloned = cloneThroughJson(someObject);
Run Code Online (Sandbox Code Playgroud)

我发现每次引用同一个对象时都会返回.例如

假设我首先调用它cloneThroughJson(x) 返回Y 我再次在同一个函数中调用它cloneThroughJson(x).它又回来了Y.

你知道如何使用深度克隆克隆java中的非序列化对象吗?

java clone

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

AED (?.? ) 货币符号使用问题。它向左移动

在我的应用程序中,我需要显示货币换算。

例如:

1 ?= 0.015 $
Run Code Online (Sandbox Code Playgroud)

同样,我想显示从 AED 到 USD 的转换。当我尝试时,转换方程会失真。

1 ?.? = 0.99 $ 
Run Code Online (Sandbox Code Playgroud)

html culture cultureinfo circular-dependency

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

为什么局部变量在if-else构造中启动而在if-else-if构造中不启动?

所以我们知道必须初始化局部变量才能在if-else-if构造中使用.例如,以下代码将无法编译.

public class Test {
    public static void main (String...args){
      double price= 11;
      String model ;
      if (price>10)
        {model ="smartphone";}
      else if  (price<=11) 
        {model="not smart phone";}
      System.out.println(model);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您将局部变量String模型更改else if (price<=11)else或初始化为某个随机值,则代码将成功编译.我在这个案例中的问题是"为什么?"

现在,这是一本书的问题,解释是:

"只声明局部变量模型,而不是初始化.变量模型的初始化放在if和else-if结构中.如果在if或else-if结构中初始化变量,编译器无法确定这些条件是否会被评估为真,导致没有初始化局部变量."

即使经过解释,我仍然不明白两件事,

  1. 我不确定为什么变量模型会混淆编译器,因为无论模型是什么,双倍价格都是11.
  2. 当你把else放在最后时,它如何神奇地初始化局部变量?

java if-statement initialization

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

如何在 jenkins 发布通过 ftp 插件中设置认证?

我已经为 Jenkins 安装了Publish over FTP插件。我已经选中了名为“使用 FTP over TLS”的复选框。另一个名为Trusted Certificate的文本框,但我不知道此处设置的值是什么?我如何在这里设置 SSL?我正在使用詹金斯版本。2.13 . 每次都显示以下错误。我的用户名和密码 100% 正确。不知道我在这里做错了什么。

错误:连接或更改目录失败

jenkins.plugins.publish_over.BapPublisherException:无法连接和初始化 FTP 连接。消息:[jenkins.plugins.publish_over.BapPublisherException:无法使用用户名 [xxxxxx] 登录 - 检查用户名和密码]

jenkins-plugins

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

在Lumen API中调用非对象的成员函数parameter()

我的Lumen API更新用户模块中出现此错误.我没有收到$request邮递员的申请价值.它发生在我的UserController,我的其他控制器工作正常.我正在使用该put方法来更新用户.

这是错误:

Request.php第901行中的FatalErrorException:在Lumen API中调用非对象的成员函数parameter()

我的更新功能如下所示:

public function updateUser(Request $request,$user_id)
{
    try {
        $user = User::findOrFail($user_id);

    } catch(ModelNotFoundException $e) {

        return "User not found";
    }
    $user->buyer_id = $request->buyer_id;
Run Code Online (Sandbox Code Playgroud)

api lumen

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

java applet 小程序的替代品是什么?

我正在开发一个 Web 应用程序,其中我们有一个客户端小程序应用程序,它将检查客户端计算机上是否安装了证书。

但大家都知道 Mozilla 很快就会停止支持小程序。

谁能建议做同样事情的替代选择是什么?

java applet

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

使用 openSSL 生成自签名 RSA-2048-SHA-256 证书 PFX 文件

我正在尝试创建一个自签名 RSA-2048-SHA-256 证书 PFX 文件,以便在我的 WCF 请求中使用它进行数据签名。

我使用了一些 openSSL 示例来创建证书 PFX 文件,但即使我将 SHA 算法设置为 256,当我在我的 .net 应用程序中加载它时,我看到该证书的私钥具有以下设置:

KeyExchangeAlgorithm = RSA-PKCS1-KeyEx

SignatureAlgorithm = http://www.w3.org/2000/09/xmldsig#rsa-sha1
Run Code Online (Sandbox Code Playgroud)

当我使用下面的代码来使用此证书时,我收到“无效算法指定的异常”,但如果我将 SHA256CryptoServiceProvider 更改为 SHA1CryptoServiceProvider 一切正常。

string msg = "This is my test message";

X509Certificate2 privateCert = new X509Certificate2("C:\\TEMP\\private.pfx", "12345");

byte[] signature = (privateCert.PrivateKey as RSACryptoServiceProvider).SignData(new UTF8Encoding().GetBytes(msg), new SHA256CryptoServiceProvider());
Run Code Online (Sandbox Code Playgroud)

我只能假设我的证书文件不是用 SHA256 创建的,而是用某种默认的 SHA1 算法创建的。

这些是我用来创建证书的步骤:

  1. openssl req -x509 -days 365 -newkey rsa:2048 -sha256 -keyout key.pem -out cert.pem
  2. openssl pkcs12 -export -in cert.pem -inkey key.pem -out private.pfx

我究竟做错了什么?

.net c# openssl rsa sha

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