我试图让Hibernate @OneToOne注释工作,而且在这里没有取得多大成功......
假设我有一个名为的表status,如下所示:
+------------------------------------------------+
| status |
+------------------------------------------------+
| id | frn_user_id | frn_content_id | status |
+----+-------------+----------------+------------+
| 1 | 111 | 0 | "active" |
+----+-------------+----------------+------------+
| 2 | 0 | 222 | "inactive" |
+----+-------------+----------------+------------+
Run Code Online (Sandbox Code Playgroud)
我有一个实体User,看起来像这样:
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false)
private Integer id;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "userId")
private Status status;
// getters and setters …Run Code Online (Sandbox Code Playgroud) 我使用Jackson ObjectMapper来反序列化包含接口作为其属性之一的对象的JSON表示.这里可以看到代码的简化版本:
https://gist.github.com/sscovil/8735923
基本上,我有一个Asset有两个属性的类:type和properties.JSON模型如下所示:
{
"type": "document",
"properties": {
"source": "foo",
"proxy": "bar"
}
}
Run Code Online (Sandbox Code Playgroud)
该properties属性被定义为一个被调用的接口AssetProperties,我有几个实现它的类(例如DocumentAssetProperties,ImageAssetProperties).这个想法是图像文件具有与文档文件不同的属性(高度,宽度)等.
我在关闭的例子合作这篇文章,通读文档和问题,这里SO和超越,并在不同的配置试验@JsonTypeInfo标注的参数,但一直没能破解这个螺母.任何帮助将不胜感激.
最近,我得到的例外是:
java.lang.AssertionError: Could not deserialize JSON.
...
Caused by: org.codehaus.jackson.map.JsonMappingException: Could not resolve type id 'source' into a subtype of [simple type, class AssetProperties]
Run Code Online (Sandbox Code Playgroud)
提前致谢!
解:
非常感谢@MichałZiober,我能够解决这个问题.我还能够使用Enum作为类型ID,这需要一些谷歌搜索.这是一个带有工作代码的更新Gist:
我有一个接受Object的方法.在一个用例中,该方法接受a HashMap<String, String>并将每个值设置为相应键名的属性.
public void addHelper(Object object) {
if (object instanceof HashMap) {
HashMap<String, String> hashMap = (HashMap<String, String>) object;
this.foo = hashMap.get("foo");
this.bar = hashMap.get("bar");
}
}
Run Code Online (Sandbox Code Playgroud)
此类遵循特定接口,因此不能为这些属性添加setter.
我的问题是,如何检查此处的类型?
HashMap<String, String> hashMap = (HashMap<String, String>) object;
Run Code Online (Sandbox Code Playgroud)
提前致谢!
解
感谢@drobert的回答,这是我的更新代码:
public void addHelper(Object object) {
if (object instanceof Map) {
Map map = (Map) object;
if (map.containsKey("foo")) this.foo = map.get("foo").toString();
if (map.containsKey("bar")) this.bar = map.get("bar").toString();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种有效的设计模式,将一个对象列表映射到另一个对象列表,并且它们之间具有零或一对一的关系。我意识到这种事情通常是在关系数据库中完成的,但在这种特殊情况下,它确实需要在 Java 应用程序中完成......
假设第一个列表包含Foo对象(即List<Foo>):
public class Foo {
public Integer id;
public String barName;
}
Run Code Online (Sandbox Code Playgroud)
第二个列表包含Bar对象(即List<Bar>):
public class Bar {
public Integer fooId;
public String name;
}
Run Code Online (Sandbox Code Playgroud)
如何最有效地将所有name属性映射Bar到equals 的Foo对象?Bar.fooIdFoo.id
我能想到的最好的是:
void mapFooBar(List<Foo> fooList, List<Bar> barList) {
for (Bar bar : barList) {
for (Foo foo : fooList) {
if (bar.fooId.equals(foo.id)) foo.barName = bar.name;
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:根据几个答案,我改进了我的代码,如下所示:
void mapFooBar(List<Foo> fooList, List<Bar> barList) { …Run Code Online (Sandbox Code Playgroud) 首先让我说我真的很喜欢Deployd.我想在生产中使用它,但我想要合并OAuth和社交登录,所以我安装了dpd-passport模块.除了两个小(大)问题外,它的效果很好:
/users如果他们知道用户的socialAccount和socialAccountId,则向端点发出POST请求.我的问题是:IA如何防止#1发生,或者B)禁用用户创建的标准方法而不阻止OAuth用户创建?
有没有人成功使用过Deployd并dpd-passport在生产中?如果是的话,我想跟你说话......
提前致谢!
我正在使用 Nuxt v2.15 和 @nuxtjs/i18n v7.2 构建一个网络应用程序。我使用 Vuex 进行状态管理。在我的全局状态下,我想创建一个返回基于this.$i18n.locale.
在我的 Vuex getter 方法中访问附加到当前应用程序上下文的最佳方法是什么$i18n?
nuxt.config.js
export default {
modules: [
"@nuxtjs/i18n", // https://i18n.nuxtjs.org/
],
i18n: {
locales: { /* configuration */ },
defaultLocale: "en",
detectBrowserLanguage: {
fallbackLocale: "en",
redirectOn: "root",
},
langDir: "~/locales/",
vueI18n: {
fallbackLocale: "en",
messages: { /* translation data */ },
},
},
};
Run Code Online (Sandbox Code Playgroud)
商店/index.js
export const state = () => ({
// Root module for Vuex store: https://nuxtjs.org/docs/directory-structure/store/
});
export const getters = …Run Code Online (Sandbox Code Playgroud) 这是一个 Javascript / jQuery 问题:
我正在尝试使用jQuery.inArray方法生成 1 到 21(无重复)之间的六个唯一随机数。然后,这六个数字将用于从名为 logo1.jpg 到 logo21.jpg 的组中选择六个 .jpg 文件。
谁能告诉我我在这里做错了什么?
<div id="client-logos"></div>
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<script type="text/javascript">
Show = 6; // Number of logos to show
TotalLogos = 21; // Total number of logos to choose from
FirstPart = '<img src="/wp-content/client-logos/logo';
LastPart = '.jpg" height="60" width="120" />';
r = new Array(Show); // Random number array
var t=0;
for (t=0;t<Show;t++)
{
while ( jQuery.inArray(x,r)
{
var x = Math.ceil(Math.random() * TotalLogos);
});
r[t] = …Run Code Online (Sandbox Code Playgroud) 好的,这是在扼杀我.我写了一个WordPress插件,它为TinyMCE编辑器添加了一个自定义按钮,效果很好,除了由按钮触发的选项弹出窗口加载不同于WP原生的类似弹出窗口...
具体来说,当您单击WordPress中TinyMCE工具栏上方的"添加媒体"按钮时,"添加媒体"窗口将以精美的厚箱模式打开.它也会加载到iframe中,因为获取输出的按钮HTML包含在一个带有URL href值的锚标记中:
<a href="http://.../wp-admin/media-upload.php?post_id=916&TB_iframe=1&width=640&height=354" class="thickbox add_media" id="content-add_media" title="Add Media" onclick="return false;">
Run Code Online (Sandbox Code Playgroud)
但是当我的按钮的HTML输出时,锚标记的href值为'javascript:;':
<a role="button" id="content_companyinfo" href="javascript:;" class="mceButton mceButtonEnabled mce_companyinfo" onmousedown="return false;" onclick="return false;" aria-labelledby="content_companyinfo_voice" title="Insert company info fields" tabindex="-1">
Run Code Online (Sandbox Code Playgroud)
这是我的TinyMCE编辑器插件代码:http://pastebin.com/kuQJRHJR
以下是添加媒体按钮的WP核心TinyMCE编辑器插件:http://core.trac.wordpress.org/browser/trunk/wp-includes/js/tinymce/plugins/media/editor_plugin_src.js
TinyMCE addButton函数不允许您设置href值,只允许链接到使用addCommand创建的自定义命令函数的cmd值.
我尝试在addButton函数的设置中将类'thickbox'添加到我的按钮,但这有一个奇怪的效果,在我的普通弹出窗口后面创建一个厚盒模式.
任何人都知道如何以正确的方式做到这一点?提前致谢!
我试图mysqli_result->fetch_object()基于MySQL中定义的类型来转换属性.
例如,如果我的id列bigint(20)在MySQL中,我想mysqli_result->fetch_object()->id成为一个整数,而不是一个字符串.
根据文档,此方法返回字符串属性的对象.是否有可能获得数据类型?
好的,这真的让我烦恼.我有一个带隔离范围的指令,使用controllerAs语法和bindToController:
function exampleDirectiveFactory() {
var bindings = {
foo: '=',
bar: '@'
}
return {
bindToController: true,
controller : 'ExampleController',
controllerAs : 'vm',
scope : bindings,
template : 'foo = {{ vm.foo }}<br />bar = {{ vm.bar }}'
};
}
Run Code Online (Sandbox Code Playgroud)
假设有这样的用法:
<example foo="FOO" bar="BAR"></example>
Run Code Online (Sandbox Code Playgroud)
...我希望值vm.foo的值与foo属性的值双向绑定.相反,它是undefined.
值vm.bar等于barHTML元素的属性值,我期望.
当我尝试更改vm.bar使用过滤器的值时,不会继续更改.
当我将过滤后的值存储vm.bar到一个新变量时vm.baz,它按预期工作.
所以我的问题有两个部分:
A)为什么vm.foo使用时未定义的值'='?
B)为什么我不能改变vm.bar控制器范围内的值,即使该改变没有传播到HTML元素属性(它不应该,因为我正在使用'@')?
在我的AngularJS应用程序中,我有一个包含a <textarea>和提交按钮的模板.A <div>(可以很容易<form>)包装这两个元素并有一个控制器.当单击提交按钮时,控制器将$ resource服务用于POST从<textarea>REST API 到值的值.
模板:
<div ng-controller="MyController as vm">
<textarea ng-model="vm.text" rows="5"></textarea>
<button ng-click="vm.save()">Save</button>
</div>
Run Code Online (Sandbox Code Playgroud)
控制器:
angular.module('myApp')
.controller('MyController', MyController);
MyController.$inject = ['myRestApiResource'];
function MyController(myRestApiResource) {
var vm = this;
vm.save = function() {
var params = [];
var postData = {text: vm.text};
myRestApiResource.save(params, postData)
.then(function(res) { /* success handler */ })
.catch(function(res) { /* error handler */ });
};
}
Run Code Online (Sandbox Code Playgroud)
当资源save()方法的$ promise被拒绝时,响应数据(在某些情况下)包含一个error.position属性,该属性引用检测到语法错误的字符串索引 …
javascript separation-of-concerns angularjs angularjs-design-patterns
我有一个带有抽象类的Java枚举,如下所示:
public enum Strategy {
STRING {
@Override
public String execute() {
return "ABCDE";
}
},
INTEGER {
@Override
public Integer execute() {
return 12345;
}
};
public abstract Object execute();
}
Run Code Online (Sandbox Code Playgroud)
当我使用它时,我希望能够这样做:
String text = Strategy.STRING.execute();
Integer num = Strategy.INTEGER.execute();
Run Code Online (Sandbox Code Playgroud)
但是,我的IDE警告我,这些是不兼容的类型,不会编译.要解决它,我必须改为:
String text = (String) Strategy.STRING.execute();
Integer num = (Integer) Strategy.INTEGER.execute();
Run Code Online (Sandbox Code Playgroud)
我宁愿不必投出我的execute()方法的结果.有没有办法返回具体方法签名中指定的类型,而不是返回Object?
我正在尝试开始在 Express 服务器上使用 i18next,但无法根据文档中的示例使其正常工作。
我的应用程序由 index.js(我的 Express 服务器)、package.json 和一个locales包含两个翻译文件的目录组成:en.json 和 es.json。
索引.js
'use strict';
const express = require('express');
const i18n = require('i18next');
const i18nMiddleware = require('i18next-express-middleware');
const path = require('path');
const app = express();
const port = process.env.PORT || 8080;
i18n
.use(i18nMiddleware.LanguageDetector)
.init({
fallbackLng: 'en',
lowerCaseLng: true,
preload: ['en', 'es'],
resGetPath: path.join(__dirname, 'locales/__lng__.json'),
useCookie: false
});
app.use(i18nMiddleware.handle(i18n, {
removeLngFromUrl: false
}));
app.get('/', (req, res) => {
res.send(req.t('home.title'));
});
app.use(express.static(path.join(__dirname, 'public')));
module.exports = app.listen(port, (err) => {
if (err) …Run Code Online (Sandbox Code Playgroud) java ×5
javascript ×5
angularjs ×2
casting ×2
node.js ×2
arrays ×1
controlleras ×1
deployd ×1
express ×1
generics ×1
hibernate ×1
i18next ×1
iframe ×1
jackson ×1
jpa ×1
jquery ×1
json ×1
list ×1
loops ×1
mapping ×1
middleware ×1
mysql ×1
mysqli ×1
nuxt-i18n ×1
nuxt.js ×1
oauth ×1
object ×1
one-to-one ×1
passport.js ×1
php ×1
polymorphism ×1
random ×1
thickbox ×1
tinymce ×1
unique ×1
vue.js ×1
vuex ×1
wordpress ×1