我是tmux的新手.重命名后,我想保持窗口名称不变.但是在我重命名之后,当我执行命令时它们会不断变化.
有什么方法可以让他们保持静态名称吗?
我需要在我的Java代码中使用缓存的映射.地图从DB加载,需要定期从DB重新加载(对于地图中的所有数据).因为我们现在无法导入任何新包.谷歌的guava包或代码示例中是否存在任何现有功能?
如果将地图实现为线程安全的话会更好.但如果它不够简单,它仍然可以.
"LoadingCache"是我喜欢的,但它没有数据初始化方法让我在开始时将数据放入地图.并且它需要在地图到期后每次"获取"时到达数据库.
谢谢!
一些示例代码可能会有所帮助:
public interface AToBMapper
{
public static final String DEFAULT_B_NAME = "DEFAULT";
public String getBForA(final String a);
}
public class AToBMapperImpl implements AToBMapper
{
private final SomeDAO dao;
private Map<String, String> cachedMap;
public AToBMapperImpl(final SomeDAO dao)
{
this.dao = dao;
cachedMap = new HashMap<String, String>();
}
public String getBForA(final String a)
{
// if the map is not initialized, initialize it with the data
// if the map is expired, refresh all the data in the …
Run Code Online (Sandbox Code Playgroud) 我正在使用hibernate和hql来查询我的Java代码.但我得到了这样的例外:
Caused by: org.hibernate.PropertyNotFoundException: Could not find setter for 0 on class [my class]
at org.hibernate.property.ChainedPropertyAccessor.getSetter(ChainedPropertyAccessor.java:44)
Run Code Online (Sandbox Code Playgroud)
我不明白"0"是什么意思.以下是一些带有示例的deatils:
我有几个表加入hql.表格如下:
A
- A_ID
- NAME
B
- B_ID
- A_ID
C
- C_ID
- B_ID
- LENGTH
- UNIT
Run Code Online (Sandbox Code Playgroud)
类别:
@Entity
@Table(name="A")
class A
{
@Id
@Column(name="A_ID", updatable=false)
private Long id;
@Column(name="NAME", nullable=false, length=10, updatable=false)
private String name;
@OneToMany(mappedBy="a", fetch=FetchType.LAZY, cascade={CascadeType.ALL})
@JoinColumn(name="A_ID", nullable=false)
private Set<B> bs;
@Transient
private Double length;
@Transient
private String unit;
// Setters and getters
...
}
@Entity
@Table(name="B") …
Run Code Online (Sandbox Code Playgroud) 我需要创建一个shell脚本来执行此操作:
我已经完成了第4步shell脚本.现在我必须逐一完成这4个步骤.我想创建一个脚本并完成所有操作.那可能吗?如何将数据从一台主机传输到我的主机?
我想也许db文件不是必需的.
注意:我必须ssh到另一台主机才能使用sqlplus.它是唯一一个拥有访问数据库权限的主机.
我不知道在哪里可以找到hibernate的实现机制.我有很多关于hibernate的问题,但我们可以从这个开始:
如果有这样的HQL:
from B b
where b.x =: x
and b.y =: y
Run Code Online (Sandbox Code Playgroud)
并查询代码如下:
Query query = session.createQuery(hql.toString());
Run Code Online (Sandbox Code Playgroud)
将所有字段设置为B的默认转换器是什么?我发现这甚至不需要setter或getter来设置值.
或者说,它和这个之间有什么区别:
Query query = session.createQuery(hql.toString()).setResultTransformer(Transformers.aliasToBean(B.class));
Run Code Online (Sandbox Code Playgroud)
感谢您阅读本文,欢迎任何想法.